App Engine にデプロイされたプロジェクトを実行しようとすると、エラーが発生します。次のような問題があります。
java.lang.ClassNotFoundException: com.seattleglassware.AuthServletSupport$$anonfun$finishOAuth2Dance$1$$anonfun$apply$33$$anonfun$apply$34$$anonfun$apply$37$$anonfun$apply$40$$anonfun$apply$41$$anonfun$apply$42$$anonfun$apply$45$$anonfun$apply$47$$anonfun$apply$48$$anonfun$apply$49
クラス名は妥当に見えます (妥当な特定の値については、これは Scala コンパイラによって生成されたコードです)。ローカルの web/WEB-INF/classes/com ディレクトリにファイルがあり、javap で逆コンパイルできます (そのため、破損しているとは思いませんし、そのようなばかげたことはないと思います)。ローカル デバッグ サーバーで実行すると、すべて正常に動作します。
さらに奇妙なことに、次のように web/WEB-INF/classes 内のすべての .class ファイルを jar ファイルに入れることができます。
cd to the web/WEB-INF/classes directory
jar cf ../lib/classes.jar .
そして今、プロジェクトをアップロードしても (Eclipse でデプロイ ボタンを押して)、これらの ClassNotFoundException エラーは表示されません。jar ファイルを削除し、プロジェクトを再アップロードして、再度エラーを取得します。
.class ファイルの名前に何らかの制限があるのだろうか? または、これを引き起こしている展開プロセスで何か他のことが起こっていますか?
編集:コマンドラインから実行すると、これがより明確になりました(現在mavenを使用):
重大: ファイル名に無効な文字があります: WEB-INF/classes/com/seattleglassware/AuthServletSupport$$anonfun$finishOAuth2Dance$1$$anonfun$apply$33$$anonfun$apply$34$$anonfun$apply$37$$anonfun$apply$40$$ anonfun$apply$41$$anonfun$apply$42$$anonfun$apply$45$$anonfun$apply$47$$anonfun$apply$48$$anonfun$apply$49.class
しかし、それは有効なファイル名であるように見えます。