使用googlegson的lotusdominojava安全问题

使用googlegson的lotusdominojava安全问题,java,xpages,gson,lotus-domino,Java,Xpages,Gson,Lotus Domino,试图在通过Xpage启动的java方法中使用 我可以毫无问题地创建gson对象,但是当尝试调用gson.toJson(jsonObj)时,我得到以下错误: HTTP JVM:java.lang.SecurityException:不允许访问成员 类内java.util.HashMap HTTP-JVM:at lotus.notes.AgentSecurityManager.checkMemberAccess(未知源) HTTP JVM:at java.lang.Class.checkMember

试图在通过Xpage启动的java方法中使用

我可以毫无问题地创建gson对象,但是当尝试调用
gson.toJson(jsonObj)
时,我得到以下错误:

HTTP JVM:java.lang.SecurityException:不允许访问成员 类内java.util.HashMap

HTTP-JVM:at lotus.notes.AgentSecurityManager.checkMemberAccess(未知源)

HTTP JVM:at java.lang.Class.checkMemberAccess(Class.java:112)

HTTP JVM:at java.lang.Class.getDeclaredConstructor(Class.java:419)

守则:

HashMap<String, Object> jsonObj = new HashMap<String, Object>();
jsonObj.put("apiStatus", apiStatus);

Gson gson = new Gson();
String json = gson.toJson(jsonObj);  // Exception thrown on this line
HashMap jsonObj=newhashmap();
jsonObj.put(“apiStatus”,apiStatus);
Gson Gson=新的Gson();
字符串json=gson.toJson(jsonObj);//此行上引发异常
我已经看到,但我已经实施了两项建议的政策变更,但两项变更似乎都没有任何效果:

授予{ 权限java.lang.reflect.ReflectPermission“suppressAccessChecks”;}

格兰特代码库“xspnsf://server:0/path/to/your/db.nsf/-" { 权限java.security.AllPermission;}


以下是几乎相同的例外:

使用

应该是这样的。如果不想保持此打开状态,请检查
授权代码库的语法:

在此设置中,您必须更改数据库的路径(通过 仅替换/path/to/your/db.nsf/,而不是服务器:0)


如果您不喜欢更新服务器文件系统上的安全文件,可以避免使用gson,并用xpages自己的JSON序列化程序替换它。请参阅我的博客文章:


谢谢David,我会看一看。8.5.2版之后的Domino附带的软件包(我想)是。谢谢Panu,我需要在最后一个斜杠后加上破折号吗?我从来没有用过这个,但所有说明中都有破折号,所以我相信是的。
grant { permission java.security.AllPermission; };