2015-10-07 3 views
0

Хотя я доступ к данным с использованием Gson из GAE получать исключение:Отражения не допускаются на частный статический окончательный ИНТ java.util.BitSet.ADDRESS_BITS_PER_WORD ошибки

Исключения: java.lang.SecurityException: java.lang .IllegalAccessException: Отражение не допускается частное статического окончательного 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()); 
+0

Ваш стоп-код немного короче, чтобы делать какие-либо предложения. – hotzst

+0

Что такое 'dspinfo1' и' dspbh'? Это действительно помогло бы, если бы вы предоставили короткий, но * полный * пример, демонстрирующий проблему, а также полную трассировку стека. –

+0

dspinfo1 и dspbh - мои объекты класса. –

ответ

0

Вы можете попробовать

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

вы можете разработать более пожалуйста. –

+0

Вы получаете SecurityException, потому что gson пытается получить доступ к закрытому полю через отражение. Установив доступный флаг в поле перед вызовом gson, вероятно, он будет разрешен. Примечание. Я не уверен, что GAE позволит вам вызвать 'Field.setAccessible (true)', это может быть запрещено SecurityManager –

+0

, есть ли способ решить проблему? –

0

Вы можете попробовать Джексону свой класс, преобразовать его в формат JSON схемы, а затем на предварительно компилировать класс. Это позволит обойти проблему отражения в GAE.

Смежные вопросы