Почему 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, нажмите "Обновить" в представлении "Режим разработки").

Другие вопросы по тегам