Почему Jetty не обнаружил CometServerServlet из пакета Rocket?
У меня есть общее приложение GWT, которое использует (пытается) Rocket-Framework для реализации CometServerServlet. После того, как я зарегистрировал свой сервлет в web.xml и app.gwt.xml, вот так:
App.gwt.xml:
<servlet path="/server" class="myapp.server.MyCometServlet"/>
web.xml
<servlet>
<servlet-name>myCometServlet</servlet-name>
<servlet-class>myapp.server.MyCometServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myCometServlet</servlet-name>
<url-pattern>/myapp/server</url-pattern>
</servlet-mapping>
Очевидно, Jetty не находит CometServerServlet, из которого выходит мой MyCometServlet:
ВНИМАНИЕ: Ошибка запуска обработчиков java.lang.NoClassDefFoundError: ракета / удаленное взаимодействие / сервер / комета /CometServerServlet
Вызывается: java.lang.ClassNotFoundException: rocket.remoting.server.comet.CometServerServlet
Это странно, потому что я добавил банку с ракетой в свой проект.
Может кто-нибудь объяснить, почему произошла эта ошибка?
Я мог бы понять, неправильно ли я зарегистрировал сервлет или что-то в этом роде, но в какой момент Jetty (или кто?) Ищет CometServerServlet и не может его найти?
1 ответ
Добавление jar в ваш проект (например, в некоторых IDE) устранит ошибки компиляции, потому что jar можно найти во время компиляции.
Но Jetty нужна библиотека во время выполнения, и обычный способ ее предоставления - поместить ее в WEB-INF/lib
папка вашего проекта.
Конечно, обязательно повторно разверните приложение после этого (например, если вы используете Dev Mode, нажмите "Обновить" в представлении "Режим разработки").