我想将一个Java数组放在一个范围变量中。这是阵列的构建方式
Person[] persons = null;
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource service = client.resource(url);
String json = service.accept(MediaType.APPLICATION_JSON).get(String.class);
ObjectMapper mapper = new ObjectMapper();
persons = mapper.readValue(json, Person[].class);
return persons
我使用Jackson库将JSON解析为Java对象ref:http://jackson.codehaus.org/1.0.1/javadoc/org/codehaus/jackson/map/ObjectMapper.html
我可以将people数组直接绑定到重复控件。
但是,如果我尝试先将数组存储在范围变量中,则会收到500错误消息。
var persons = personsBeanTest.getPersons("http://dev1/fakenames.nsf/api/data/collections/name/people?count=10");
viewScope.put("names",persons);
HTTP JVM:CLFAD0211E:抛出异常。有关更多详细信息,请参阅位于C:/ Program Files / IBM / Domino / data / domino / workspace / logs中的error-log-0.xml HTTP JVM:CLFAD0229E:发生安全异常,请求服务请求:/fakenames.nsf/index_1.xsp - HTTP代码:500。有关更多详细信息,请参阅位于C:/ Program Files / IBM /中的error-log-0.xml多米诺/数据/多米诺/工作区/日志
有人可以解释我做错了什么以及如何更正代码以将数组放入范围变量中?
答案 0 :(得分:2)
Thomas在评论中说得好:当使用像Jackson这样的外部库时,你必须在Java安全策略设置中为它设置权限。如何执行此操作在此处http://oliverbusse.notesx.net/hp.nsf/blogpost.xsp?documentId=EAA或此处http://www.dalsgaard-data.eu/blog/java-security-in-ibm-domino/
进行了说明答案 1 :(得分:2)
我必须为我的对象包含serializable: - /