Pergunta

I have a common GWT application that is using (trying to) Rocket-Framework to implement a CometServerServlet. After I have registered my servlet in web.xml and my app.gwt.xml, like this:

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 apparently doesn't find the CometServerServlet from which my MyCometServlet extends:

WARNING: Error starting handlers java.lang.NoClassDefFoundError: rocket/remoting/server/comet/CometServerServlet

Caused by: java.lang.ClassNotFoundException: rocket.remoting.server.comet.CometServerServlet

That is strange, because I've added the Rocket jar to my project.

Could someone explain why this error happened?

I could understand if I "registered" the servlet in a wrong way or something, but at what point Jetty (or who?) looks for the CometServerServlet and fails at finding it?

Foi útil?

Solução

Adding the jar to your project (e.g. in some IDE) will remove compilation errors, because the jar can be found at compile time.

But Jetty needs the library at runtime, and the usual way to provide it, is by putting it in the WEB-INF/lib folder of your project.

Of course, make sure to redeploy the app afterwards (e.g. if you're using Dev Mode, click refresh in the "Development Mode" view).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top