2017-06-27 5 views
0

Javaエージェントでは、jsonを解析するためにGSONを使用します。私がしようとすると、しかし:DominoエージェントとGSON - アクセスが拒否されました

String jsonReceived = "{'product':'IBM Domino','args':{'since':'1970','current':'9.0.2'}}"; 
Product product = (Product) gson.fromJson(jsonReceived, Product.class); 

私はメッセージが表示されます。

java.security.AccessControlException:アクセス拒否されました( "java.lang.reflect.ReflectPermission" "suppressAccessChecksで")

私が最近変更しますJavaポリシーの最大値:

grant { 
    permission java.security.AllPermission; 
} 

私の制限は何ですか?

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(); 
     }*/ 


    } 
} 
+1

LotusScriptエージェントはオプションですか?非常にシンプルなJSONパーサライブラリが用意されています... –

+0

ロータススクリプトでは錆びたようになっています... –

+0

だから何ですか?いくつかのSchuurpapierを持って、実用的で、試してみてください;-)私はOpenNTFで見つかるように、元々Alan Faubelによって作成されたJSONライブラリをいくつか改良して使用します。それは動作しますが、もちろんJavaではありません... –

答えて

1

私はちょうどGSONでJSONを解析するためのJavaエージェントを使用しています

はここで完全なコードです。同じエラーが発生し、同じ完全なアクセス許可を持つjava.polファイルが作成され、動作しました。エージェントに制限された操作を許可するようにセキュリティを設定することを忘れないでください。

+0

あなたのJavaポリシーファイルの外観はどうですか?私は(完全な管理者権限を持つ)サーバ上で許可された制限付き操作で実行しています –

+0

java.polはあなたと同じ内容を持っています。ノーツクライアントでエージェントを手動で実行していて、Dominoサーバーでスケジュールされていないことを言及する必要があります。 –

+0

開発中にエージェントを手動で実行しています。それは動作しません:-( –

関連する問題