我有一个常见的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模式,请在“开发模式”视图中单击“刷新”)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top