Я получаю ошибки, когда пытаюсь запустить мой проект, развернутый в приложении. Я вижу такие вопросы, как:Есть ли ограничение на длину имени файла .class в движке Google, вне файлов jar?
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-INF/classes/com, и я могу декомпилировать его с помощью javap (поэтому я не думаю, что он поврежден или что-то глупое.) Все работает нормально на локальном сервере отладки.
Еще более странно, я могу залить все .class файлы в веб/WEB-INF/классы в банку файл, например так:
cd to the web/WEB-INF/classes directory
jar cf ../lib/classes.jar .
И теперь, если я загрузить проект (нажав развернуть в Eclipse), я не вижу этих ошибок ClassNotFoundException. Удалите файл jar, повторно загрузите проект, снова получите ошибки.
Мне интересно, есть ли какие-то ограничения на имена файлов .class? Или что-то еще происходит в процессе развертывания, который вызывает это?
EDIT: запуск из командной строки сделал это гораздо более четкое (с использованием Maven сейчас):
СИЛЬНЫЙ: недопустимый символ в имени файла: WEB-INF/классы/ком/seattleglassware/AuthServletSupport $$ anonfun $ finishOAuth2Dance $ 1 $$ anonfun $ применяются $ 33 $$ anonfun $ применяются $ 34 $$ anonfun $ применяются $ 37 $$ anonfun $ применяются $ 40 $$ anonfun $ применяются $ 41 $$ anonfun $ применяются $ 42 $$ anonfun $ применяются $ 45 $$ anonfun $ применяются $ 47 $$ anonfun $ apply $ 48 $$ anonfun $ apply $ 49.class
Но он по-прежнему выглядит так, как будто это допустимое имя файла.
К сожалению, в именах нет ничего особенного. –