我正在尝试在我的 Java Applet 中使用 Google Gson,但是当我这样做时
线程“Thread-19”中的异常 java.security.AccessControlException:在 java.security.AccessController.checkPermission( AccessController.java:546) 在 java.lang.SecurityManager.checkPermission(SecurityManager.java:532) 在 java.lang.reflect.AccessibleObject.setAccessible(AccessibleObject.java:74) 在 com.google.gson.MappedObjectConstructor.getNoArgsConstructor(MappedObjectConstructor .java:85) 在 com.google.gson.MappedObjectConstructor.constructWithNoArgConstructor(MappedObjectConstructor.java:62) 在 com.google.gson.MappedObjectConstructor.construct(MappedObjectConstructor.java:53) 在 com.google.gson.JsonObjectDeserializationVisitor。com.google.gson.JsonDeserializationVisitor.getTarget(JsonDeserializationVisitor.java:56) 的constructTarget(JsonObjectDeserializationVisitor.java:40) com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:109) 的com.google.gson.JsonDeserializationContextDefault .fromJsonObject(JsonDeserializationContextDefault.java:73) 在 com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:51) 在 com.google.gson.Gson.fromJson(Gson.java:495) 在 com.google.gson。 Gson.fromJson(Gson.java:444) 在 com.google.gson.Gson.fromJson(Gson.java:396) 在 com.google.gson.Gson.fromJson(Gson.java:372) 在 org.jblux.client .network.GsonParser$1.run(GsonParser.java:32) at java.security.AccessController.doPrivileged(Native Method) at org.jblux.client.network。GsonParser.parseJson(GsonParser.java:36) at org.jblux.client.network.PlayerDataFactory.getDataFromBase64(PlayerDataFactory.java:36) at org.jblux.client.states.MainMenuState.update(MainMenuState.java:155) at java .util.Observable.notifyObservers(Observable.java:142) 在 org.jblux.client.network.ResponseWaiter.responseReceived(ResponseWaiter.java:33) 在 org.jblux.client.network.ServerListener.notify_observers(ServerCommunicator.java:236) ) 在 org.jblux.client.network.ServerListener.run(ServerCommunicator.java:218) 的 org.jblux.client.network.ServerListener.doCommand(ServerCommunicator.java:252)util.Observable.notifyObservers(Observable.java:142) at org.jblux.client.network.ResponseWaiter.responseReceived(ResponseWaiter.java:33) at org.jblux.client.network.ServerListener.notify_observers(ServerCommunicator.java:236)在 org.jblux.client.network.ServerListener.doCommand(ServerCommunicator.java:252) 在 org.jblux.client.network.ServerListener.run(ServerCommunicator.java:218)util.Observable.notifyObservers(Observable.java:142) at org.jblux.client.network.ResponseWaiter.responseReceived(ResponseWaiter.java:33) at org.jblux.client.network.ServerListener.notify_observers(ServerCommunicator.java:236)在 org.jblux.client.network.ServerListener.doCommand(ServerCommunicator.java:252) 在 org.jblux.client.network.ServerListener.run(ServerCommunicator.java:218)
我在这里发现了另外两个相关的问题。在小程序中使用 GSON 库时
,Google App Engine 上的 GSON 引发安全异常反射权限问题
但他们都没有给我答案。一个只是说不要使用Gson。
有什么方法可以授予我的小程序反射权限?
更新:我正在将我的应用程序切换为使用 JNLP 文件和 Java Web Start,因为我无法弄清楚如何使 Applet 工作。我会留下这个问题,以防有人弄清楚,但如果你不想放弃 Gson,使用 JNLP 可能是唯一的选择。