JettyがRocket PackageからCometserverservletを見つけなかったのはなぜですか?
-
28-09-2019 - |
質問
CometServerservletを実装するためにロケットフレームワークを使用している(試行)アプリケーションを使用しています。このようなように、web.xmlとapp.gwt.xmlでサーブレットを登録した後:
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:Rocket/Remoting/Server/Comet/Cometserverservlet
原因:java.lang.classnotfoundexception:rocket.remoting.server.cometserverservlet
私は自分のプロジェクトにロケット瓶を追加したので、それは奇妙です。
なぜこのエラーが起こったのかを誰かが説明できますか?
間違った方法でサーブレットを「登録」したかどうかは理解できましたが、どの時点でjetty(または誰ですか?)は、Cometserverservletを探し、それを見つけることに失敗しますか?
解決
JARをプロジェクトに追加する(たとえば、一部のIDE)は、コンパイル時間にJARが見つかるため、コンパイルエラーを削除します。
しかし、Jettyは実行時にライブラリが必要であり、それを提供する通常の方法は、 WEB-INF/lib
プロジェクトのフォルダー。
もちろん、その後、アプリを再展開するようにしてください(たとえば、DEVモードを使用している場合は、[開発モード]ビューで[更新]をクリックしてください)。