在private static final int java.util.BitSet上不允许反射.ADDRESS_BIT



当我使用Gson从GAE获取异常访问数据时:

例外:java.lang.SecurityException:java.lang.IllegalAccessException: private不允许反射int java.util.BitSet.ADDRESS_BITS_PER_WORD

我的代码是:
Gson gson = new Gson();
JsonObject jsonObject = new JsonObject();
JsonElement element = gson.toJsonTree(dspinfo1);
JsonElement element1 = gson.toJsonTree(dspbh);
jsonObject.add("xxx", element1);
jsonObject.add("xxxx", element);
out.print(jsonObject.toString());

所以请给我建议,如果可能的话用例子。完整示例:

List<DSPMaster> dpsinfo1=new ArrayList<DSPMaster>(); 
DSPMaster dspinfo1 = dspDao.getdeliveryprovider(Long.parseLong(xxxx));
response.setContentType("text/html"); 
PrintWriter out = response.getWriter(); 
Gson gson = new Gson(); JsonObject jsonObject = new JsonObject(); 
JsonElement element = gson.toJsonTree(dspinfo1);
jsonObject.add("xxxx", element); 
out.print(jsonObject.toString());

你可以试试

Field field = MyClass.class.getField("ADDRESS_BITS_PER_WORD");
field.setAccessible(true);

您可以尝试Jackson您的类,将其转换为json模式,然后预编译类。这将允许您绕过GAE中的反射问题。

最新更新