App Engine:私有java.lang.Throwable java.lang.Throwable.cause上不允许反射

Dav*_*ave 0 java google-app-engine spring-mvc

今天我去部署了一个我为Google App Engine创建的java应用程序,我被一些非常无用的错误消息所阻止.

Invocation of init method failed; nested exception is java.lang.SecurityException:
java.lang.IllegalAccessException: Reflection is not allowed on private 
java.lang.Throwable java.lang.Throwable.cause
Run Code Online (Sandbox Code Playgroud)

接下来是一个没有提到我的任何类的堆栈跟踪:我的代码中没有任何一行可以指向它.

此应用程序使用Objectify和Spring MVC,并在我的本地开发服务器(App Engine版本1.7.4)上正常工作.

我已经完成了我的代码并从我使用的任何异常类中删除了对"cause"的任何提及.我还有这个问题.此外,我的控制器只能抛出一种类型的异常,这再次没有提到原因.

有任何想法吗?

PS我发现了这个讨论,但不是很有用.

Dav*_*ave 7

如果其他人遇到类似的问题,他们与在appengine服务器上运行沙箱安全限制的代码有关,但在本地开发服务器上运行时没有这些限制.

沙箱限制不允许反映私有变量.

就我而言,我正在使用Gson进行序列化,它以难以调试的方式大量使用反射.我仍然不知道它在哪里或为什么试图对它在堆栈跟踪中讨论的Throwable事物进行反思.无论如何,当我转而使用杰克逊时,我的所有问题都消失了.