Google App Engine - Не удалось скомпилировать созданные JSP файлы JSP - программирование

Google App Engine - Не удалось скомпилировать созданные JSP файлы JSP

Мой проект работает нормально локально, но при попытке развернуть его на серверах GAE появляется следующее сообщение об ошибке:

Unable to update app: Failed to compile the generated JSP java files.

Это произошло в основном, когда я переключился с Java 7 на Java 6, так как, по-видимому, GAE пока не поддерживает. Я использую GAE 1.7.4, это известная проблема? Что не так с проектом? Является ли это синтаксисом в JSP? Они использовали для компиляции, прежде чем я начал использовать GAE 1.7.4, но я не знаю точной причины, когда это началось.

4b9b3361

Ответ 1

У меня была такая же проблема, и я был уверен, что существует проблема с GAE. Однако теперь я понимаю, что я изменил имя файла .java, на который ссылается несколько моих .jsp файлов, и имя файла не было изменено в .jsp. После того, как я исправил имя файла в развертывании .jsp, работала нормально снова. Arrgh.

Я думаю, прежде чем GAE начнет компилировать JSP файлы, файлы JSP с ошибками будут успешно развернуты. Кроме того, при запуске локально JSP, по-видимому, не скомпилированы до тех пор, пока они не будут доступны, поэтому, если все файлы JSP не будут проверены локально, вы можете не знать об ошибке. Но если вы попытаетесь развернуть, компиляция JSP завершится неудачно, и развертывание будет прервано. К сожалению, нет разумного сообщения об ошибке, чтобы указать, где была найдена проблема.

Ответ 3

У меня была такая же проблема. Я изменил подпись метода метода, который был вызван JSP, в который я обычно не ходил. Поэтому при запуске локально все работало нормально, потому что я никогда не ходил в проблемный JSP.

Способом решения этого является запуск локально и переход к каждому JSP в вашем проекте. В конце концов я попал в JSP, который дал мне полную статистику стека локально в моем окне браузера. Когда я исправил ошибку в этом JSP, я снова смог развернуть процесс создания приложений.

Было бы лучше, если бы GAE смог сообщить, какой JSP терпит неудачу, но этот метод будет работать.

Ответ 4

Я работал в той же самой проблеме. Да, ошибка, которую вы получили в Eclipse и в журнале, действительно бесполезна, но хотела поделиться тем, что развертывание на локальном dev-сервере вместо этого дало очень полезное сообщение об ошибке, например. в моем случае:


HTTP ERROR 500

Проблема с доступом /. Причина:

Невозможно скомпилировать класс для JSP:

Ошибка в строке: 286 в файле jsp:/dashboard.jsp

Дублировать локальный переменный хранилище

283:   </head>
284:   <body onload="initialize()">
285:     <%
286:     DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
287: 
288:     UserService userService = UserServiceFactory.getUserService();
289:     User user = userService.getCurrentUser();

Сохранена большая головная боль.

Ответ 5

Ответ на nurinamu в порядке, но это не сработало для меня, потому что мой проект был слишком сложным, и я не смог разрешить ошибки, которые я получил от ссылки на исходную папку, сгенерированную в промежуточной области appengine. Однако мне удалось исправить мою проблему!

Этот метод немного боль, но в худшем случае: переместите JSP из вашего проекта и выполните тестирование, пока вы не сузились и не обнаружили, какой JSP вызывает проблему.

Это был единственный способ понять, что вызвало проблему.

UPDATE

Для меня ошибка была импортной ошибкой, которая не поддерживалась appengine.

Ответ 6

Если вы используете JSP, вы должны убедиться, что JSP файл, который вы включаете в другие файлы, имеет все необходимые импорты, даже если все работает хорошо в тестовой среде.

Например, если у вас есть файл с именем inc.jsp, а в других файлах вы включаете его так:

<%@include file="inc.jsp" %>

Затем внутри inc.jsp вы должны убедиться, что все правильные импорты существуют, даже если компилятор явно не жаловался на него.

Легкий способ найти ошибки в JSP include - это попробовать и открыть его в браузере при запуске сервера разработки. Вы увидите ошибки JSP, которые компилятор вам не рассказал.

Это одна из причин, по которой я нашел ошибку, упомянутую в вопросе.

Ответ 7

Просто убедитесь, что все файлы jsp работают локально, поэтому вы можете попробуйте run and/or test all jsp files on your local. Они должны быть ошибкой в ​​любом из файлов jsp.

Я решил эту проблему таким образом.

У меня только ошибка в одном файле jsp, но он показывает ту же ошибку для всех файлов jsp, поэтому не беспокойтесь обо всех файлах.