Google App Engine: ClassNotFoundException после развертывания, но отлично работает на локальном сервере - PullRequest
3 голосов
/ 15 марта 2012

Я изучаю фреймворк и сервис движка приложений Google, и для этого я создал учебник, который Google предоставляет в разделе "документы" на главной странице движка приложений Google.

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

поэтому я развернул его (без ошибок, «развертывание успешно»), просто чтобы увидеть, как он работает, прежде чем перейти к более сложным примерам, но я получаю ошибку 500. Проверяя журналы, я получаю: «java.lang.ClassNotFoundException: guestbook.SignGuestbookServlet "- это единственный сервлет из приложения, и он отлично работает с моей машины, а не с движка приложения?

сопоставление web.xml правильное (как и в Google), а appengine-web.xml содержит имя приложения. что это может быть? заранее спасибо.

РЕДАКТИРОВАТЬ: хорошо, теперь я чувствую себя глупо. по-видимому, мне нужно построить перед развертыванием, я думал, что процедура deply создаст для меня все с нуля, думаю, я ошибся. извините, что кто-то потратил время, и я надеюсь, что когда-нибудь это поможет кому-то с такой же проблемой.

Ответы [ 3 ]

2 голосов
/ 15 марта 2012

Проблема с запуском из Eclipse заключается в том, что Eclipse поместил все и кухонную раковину в свой путь к классам.

Я бы посоветовал вам разобрать файл войны развертывания, изучить WEB-INF / classes и WEB-INF / lib и убедиться, что ваши файлы .class присутствуют.

2 голосов
/ 15 марта 2012

Однажды у меня была такая же проблема. Насколько я помню, я забыл добавить некоторые зависимости в файл войны. Локальный сервер содержал файлы jar в своем пути к классам, а сервер appengine - нет, и поэтому я получил исключение ClassNotFoundException.

Так что вам может понадобиться проверить, какие банки включены в войну.

1 голос
/ 21 января 2013

У меня была такая же проблема, затем я понял, что указал appcfg на каталог с неправильным WEB-INF.

Имейте в виду, чтобы не указывать appcfg на исходный WEB-INF, а на целевой WEB-INF (например: на WEB-INF, созданный пакетом mvn, который содержит классы / и lib /).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...