我有一个常见的GWT应用程序正在使用(尝试)Rocket-Framework来实现CometServerServlet。 在web.xml和app.gwt.xml中注册了我的servlet之后,就像这样:
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显然找不到我的MyCometServlet扩展的CometServerServlet:
警告:启动处理程序时出错 java.lang.NoClassDefFoundError: 火箭/远程处理/服务器/彗星/ CometServerServlet
引起: 抛出java.lang.ClassNotFoundException: rocket.remoting.server.comet.CometServerServlet
这很奇怪,因为我已经将Rocket jar添加到我的项目中。
有人可以解释为什么会发生此错误吗?
我能理解我是否以错误的方式“注册”了servlet,但是在什么时候Jetty(或谁?)查找CometServerServlet并找不到它?
答案 0 :(得分:0)
将jar添加到项目中(例如在某些IDE中)将删除编译错误,因为jar可以在编译时找到。
但Jetty在运行时需要库,通常的方法是将它放在项目的WEB-INF/lib
文件夹中。
当然,请确保之后重新部署应用程序(例如,如果您使用的是开发模式,请在“开发模式”视图中单击刷新)。