0

今日、私は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とSpringMVCを使用しており、ローカル開発サーバー(App Engineバージョン1.7.4)で正常に動作します。

コードを確認し、使用する例外クラスから「原因」についての言及を削除しました。私はまだこの問題を抱えています。また、コントローラーがスローできる例外のタイプは1つだけであり、これも原因については言及していません。

何か案は?

PS私はこの議論を見つけましたが、あまり有益ではありませんでした。

4

1 に答える 1

7

他の誰かが同様の問題に遭遇した場合、appengineサーバーでサンドボックスのセキュリティ制限の下で実行されているコードと関係がありますが、ローカル開発サーバーで実行されている場合はそのような制限はありません。

サンドボックスの制限により、プライベート変数を反映することはできません。

私の場合、シリアル化にGsonを使用していました。これは、デバッグが難しい方法でリフレクションを多用します。スタックトレースで説明されているThrowablethingieのリフレクションをどこで、またはなぜ実行しようとしていたのか、まだわかりません。とにかく、代わりにジャクソンを使用するように切り替えたとき、私の問題はすべて解消されました。

于 2013-01-03T11:22:17.867 に答える