Dans un agent Java, je souhaite utiliser GSON pour analyser json. Mais lorsque je tente:Domino Agent et GSON - accès refusé
String jsonReceived = "{'product':'IBM Domino','args':{'since':'1970','current':'9.0.2'}}";
Product product = (Product) gson.fromJson(jsonReceived, Product.class);
je reçois le message:
java.security.AccessControlException: Accès refusé ("java.lang.reflect.ReflectPermission" "suppressAccessChecks")
J'ai récemment changé la politique java au maximum:
grant {
permission java.security.AllPermission;
}
Alors qu'est-ce qui me limite?
Voici le code complet:
import lotus.domino.*;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonParseException;
public class JavaAgent extends AgentBase {
public void NotesMain() throws JsonParseException{
String msg = null;
lotus.domino.Session session = getSession();
OpenLogItem oli = new OpenLogItem(session);
try {
AgentContext agentContext = session.getAgentContext();
msg = "Agent " + agentContext.getCurrentAgent().getName() + " using runtime version:" + System.getProperty("java.runtime.version");
oli.logEvent(msg, OpenLogItem.SEVERITY_LOW, null);
Gson gson = new GsonBuilder().create();
msg = "after new Gson()";
oli.logEvent(msg, OpenLogItem.SEVERITY_LOW, null);
String jsonReceived = "{'product':'IBM Domino'}";
Product product = (Product) gson.fromJson(jsonReceived, Product.class);
msg = "after gson.fromJson";
oli.logEvent(msg, OpenLogItem.SEVERITY_LOW, null);
} catch(Exception e) {
oli.logError(e);
}
}
public class Product{
String product;
String msg = null;
lotus.domino.Session session = getSession();
OpenLogItem oli = new OpenLogItem(session);
public Product(){
msg = "Product() // constructor";
oli.logEvent(msg, OpenLogItem.SEVERITY_LOW, null);
}
public String getProduct() {
return product;
}
public void setProduct(String product) {
this.product = product;
}
/*@Override
public String toString() {
// TODO Auto-generated method stub
return "product: " + getProduct();
}*/
}
}
Un agent LotusScript est-il une option? Il existe des bibliothèques d'analyseurs JSON très simples disponibles ... –
Je suis devenu rouillé en écrivant dans LotusScript ... –
Alors quoi? Prenez un peu de schuurpapier, soyez pragmatique et faites un essai ;-) J'utilise la bibliothèque JSON créée à l'origine par Alan Faubel, avec quelques améliorations, à trouver sur OpenNTF. Ca marche, mais ce n'est pas Java bien sur ... –