为什么码头没有从火箭包装中找到Cometserverservelet?
-
28-09-2019 - |
题
我有一个常见的GWT应用程序,该应用程序正在使用(尝试)Rocket-Framework实现Cometserverserv。在我在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>
码头显然找不到我的mycometservlet延伸的cometserverservlet:
警告:错误启动处理程序java.lang.noclassdeffounderror:火箭/远程/服务器/comet/cometserverservlet
引起:java.lang.classnotfoundexception:rocket.remoting.server.comet.comet.ter.etserverservlet
这很奇怪,因为我在项目中添加了火箭罐。
有人可以解释为什么发生此错误吗?
我可以理解我是否以错误的方式“注册”了servlet,但是在什么时候Jetty(或谁?)寻找Cometserverservlet,并且未能找到它?
解决方案
将罐子添加到您的项目中(例如,在某些IDE中)会删除编译错误,因为可以在编译时找到罐子。
但是Jetty需要在运行时库,而提供它的通常方法是将其放在 WEB-INF/lib
您项目的文件夹。
当然,请确保之后重新部署该应用程序(例如,如果您使用DEV模式,请在“开发模式”视图中单击“刷新”)。
不隶属于 StackOverflow