簡體   English   中英

App Engine:私有java.lang.Throwable java.lang.Throwable.cause上不允許進行反射

[英]App Engine: Reflection is not allowed on private java.lang.Throwable java.lang.Throwable.cause

今天,我去部署了由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

其次是沒有提到我的任何類的堆棧跟蹤:我的代碼中沒有任何一行可以引起此問題。

該應用程序使用Objectify和Spring MVC,並且可以在我的本地開發服務器(App Engine版本1.7.4)上正常運行。

我遍歷了我的代碼,並從我使用的任何異常類中刪除了任何關於“原因”的內容。 我仍然有這個問題。 另外,我的控制器只能拋出一種類型的異常,這也沒有提及原因。

有任何想法嗎?

附言:我發現了這個討論 ,但是內容不是很多。

如果其他任何人遇到類似的問題,則它們與在appengine服務器上在沙箱安全性限制下運行的代碼有關,而在本地開發服務器上運行時不受此類限制。

沙箱限制不允許反射私有變量。

就我而言,我使用Gson進行序列化,該序列以難以調試的方式大量使用反射。 我仍然不知道它試圖在堆棧跟蹤中談論的Throwable事物上執行反射的位置或原因。 無論如何,當我改用Jackson時,我所有的問題都消失了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM