Die App-Engine unterstützt die Reflektion - Sie versuchen jedoch, ein privates Feld einer JRE-Klasse zu reflektieren:
Reflexion
Eine Bewerbung ist erlaubt, uneingeschränkter, reflektierender Zugang zu seinem eigene Klassen. Es kann beliebige private abfragen Mitglieder, verwenden java.lang.reflect.AccessibleObject.setAccessible (), und private Mitglieder lesen / setzen.
Eine Anwendung kann auch reflektieren auf JRE- und API-Klassen , wie z java.lang.String und javax.servlet.http.HttpServletRequest. Es kann jedoch nur öffentlich zugreifbar sein Mitglieder dieser Klassen nicht geschützt oder privat.
Eine Anwendung kann nicht widerspiegeln andere Klassen, die nicht zu selbst, und es kann nicht die verwenden setAccessible () -Methode, die zu umgehen ist Diese Einschränkungen.
... aus Ссылка :
Ich würde einen benutzerdefinierten Serializer für Bitset schreiben.
Siehe: Ссылка
Auch: Ссылка
Wenn App Engine Reflection nicht unterstützt, müssen wir unsere eigene toJSON-Methode schreiben. Dies kann folgendermaßen geschehen (keine große Sache, aber jemand könnte es nützlich finden):
%Vor%Dann können Sie eine toString-Methode für dieses Objekt verwenden, um die JSON-Darstellung auszugeben. Nicht das Beste, dem ich zustimme, aber einige Abhilfe für jetzt.
Ich hatte kürzlich ein ähnliches Problem.
Ich habe Gson laufen lassen, um JSON zu parsen, und es hat lange gut funktioniert, also machte ich mir keine Sorgen, dass GAE Reflection nicht auf seiner Plattform erlaubt.
Ich habe eine HashMap die Form-Klasse eingeführt und es funktionierte gut in meinem lokalen System, wobei Gson JSON Parse perfekt macht.
Aber als ich diesen Code in der Google App Engine Cloud bereitgestellt habe, ist er mit folgender Ausnahme fehlgeschlagen:
%Vor%So, jetzt bin ich zu Jackson JSON Parser gewechselt, der schneller ist und keine Reflektion benutzt - aber ja - mehr Arbeit.
Tags und Links java google-app-engine gson