0

我有一个通用的 GWT 应用程序,它正在使用(尝试)Rocket-Framework 来实现 CometServerServlet。在 web.xml 和 app.gwt.xml 中注册我的 servlet 后,如下所示:

应用程序.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:rocket/remoting/server/comet/CometServerServlet

引起:java.lang.ClassNotFoundException:rocket.remoting.server.comet.CometServerServlet

这很奇怪,因为我已将 Rocket jar 添加到我的项目中。

有人可以解释为什么会发生这个错误吗?

如果我以错误的方式或其他方式“注册”了 servlet,我可以理解,但是 Jetty(或谁?)在什么时候寻找 CometServerServlet 却找不到它?

4

1 回答 1

0

将 jar 添加到您的项目(例如在某些 IDE 中)将消除编译错误,因为可以在编译时找到该 jar。

但是 Jetty 在运行时需要该库,而提供它的通常方法是将其放在WEB-INF/lib项目的文件夹中。

当然,请确保之后重新部署应用程序(例如,如果您使用的是开发模式,请单击“开发模式”视图中的刷新)。

于 2010-11-02T20:37:53.293 回答