2

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

しかし、それは有効なファイル名であるように見えます。

4

1 に答える 1

0

ここでは、ファイル名に「特殊」文字が含まれていることが問題になる可能性があります。

現在、プロジェクト ファイル名の「特殊」文字に関する未解決の問題があります。

問題 2211: プロジェクトのファイル名で特殊文字がサポートされていない

元の問題は Python App Engine ユーザーによって報告されましたが、コメントを見ると、明らかに Java ユーザーにも影響があることがわかります。

于 2013-07-31T12:59:24.880 に答える