为什么Jetty没有从Rocket包中找到CometServerServlet?

时间:2010-11-02 20:01:34

标签: gwt servlets cometserver

我有一个常见的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并找不到它?

1 个答案:

答案 0 :(得分:0)

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

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

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