0

Rocket-Framework を使用して (しようとして)、CometServerServlet を実装する一般的な GWT アプリケーションがあります。次のように、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 の開始エラー: ロケット/リモーティング/サーバー/コメット/コメットサーバーサーブレット

原因: java.lang.ClassNotFoundException:rocket.remoting.server.comet.CometServerServlet

自分のプロジェクトに Rocket jar を追加したので、これは奇妙です。

誰かがこのエラーが発生した理由を説明できますか?

サーブレットを間違った方法で「登録」したかどうかは理解できましたが、どの時点で Jetty (または誰?) が CometServerServlet を探して、それを見つけることができなかったのでしょうか?

4

1 に答える 1

0

jar をプロジェクト (たとえば、一部の IDE) に追加すると、コンパイル時に jar を見つけることができるため、コンパイル エラーが解消されます。

しかし、Jetty は実行時にライブラリを必要とし、それを提供する通常の方法はWEB-INF/lib、プロジェクトのフォルダーに配置することです。

もちろん、後でアプリを再デプロイしてください (たとえば、開発モードを使用している場合は、[開発モード] ビューで [更新] をクリックします)。

于 2010-11-02T20:37:53.293 に答える