2011-01-19 56 views
2

私はモジュールに私のアプリを分割しようとしていると私はこの問題にこだわっている中で、サーブレットへのアクセスに問題:私が持っているGWT継承されたモジュール

RPCを使用しています「webvisualisation」と呼ばれる一つのモジュール内のウィジェットMapServiceWidget MapService Rpcインタフェースからデータを取得します。私はこのモジュールを "led"という別のGWTモジュールで継承しています(私は "webvis ..."をモジュールの "led"定義に追加したソースとともにjarファイルにまとめました)。次に、このウィジェットを2番目の "led"モジュールに作成し、メッセージを取得しようとしました。

"アクセスできません/ led/mapservice reason NOT FOUND"

そして、mapserviceが継承された「webvisualisation」モジュールで定義されていることがわかりません。

質問は、それが定義されている "webvisualisation"ではなく "led"モジュールでこのservler実装を探している理由です。私はすべてのモジュール定義とweb.xmlファイルを何度もチェックしてドキュメントを調べましたが、それは大丈夫ですが、そうではありません。私の記述が明確でない場合は、いくつかのconfig/sourceファイルを投稿することができます。

これはwebvisualisationモジュール

<!-- Servlets --> 
<servlet> 
    <servlet-name>mapservice</servlet-name> 
    <servlet-class>pl.gmike.webvis.server.MapServiceImpl</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>mapservice</servlet-name> 
    <url-pattern>/webvisualisation/mapservice</url-pattern> 
</servlet-mapping> 

のweb.xmlですとLEDのが普通生成されたサンプルファイル

<!-- Servlets --> 
<servlet> 
    <servlet-name>greetServlet</servlet-name> 
    <servlet-class>pl.led.server.GreetingServiceImpl</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>greetServlet</servlet-name> 
    <url-pattern>/led/greet</url-pattern> 
</servlet-mapping> 

答えて

0

だあなたは、クラスパスの問題にぶつかっているようです。 webvisualisation.jarがWebアプリケーションのWEB-INF/libディレクトリにあるかどうかを確認してください。

+0

あなたは正しいとは言えますが、WEB-INF/libに追加しても同じエラーが表示されます。私はEclipseからホストされたモードで実行し、 "WARNING:ファイルが見つかりませんでした:/ led/mapservice"というコンソールでこのメッセージを受け取りました。 – mike

+0

web.xmlファイルの関連部分を確認できますか? – David

0

私はそれを働かせました。私はちょうど「LED」モジュールのweb.xmlそれが今、このように見えるので、サーブレットおよびサーブレットマッピングエントリを追加しました:

<!-- Servlets --> 
<servlet> 
    <servlet-name>greetServlet</servlet-name> 
    <servlet-class>pl.led.server.GreetingServiceImpl</servlet-class> 
</servlet> 

<servlet> 
    <servlet-name>mapservice</servlet-name> 
    <servlet-class>pl.gmike.webvis.server.MapServiceImpl</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>greetServlet</servlet-name> 
    <url-pattern>/led/greet</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>mapservice</servlet-name> 
    <url-pattern>/led/mapservice</url-pattern> 
</servlet-mapping> 

をあなたはmapserviceサーブレットがにここにマッピングされて見ることができるように//mapserviceのURL主導GWTは、ように見える場所元の "webvisualisation"モジュールweb.xmlとは異なり、/ wevisualisation/mapserviceにマップされています。

私はこのソリューションには満足していませんが、機能しますが、使用する継承されたモジュールまたは継承されたモジュールのどこかで使用されているすべてのサーブレットに対してWebApps web.xmlにサーブレットマッピングを追加する必要があります。

コンパイル/リンク時にサーブレットの定義と継承されたモジュールからのマッピングがWebApps web.xmlに含まれていない理由を知りたいのですが...このようなハッキングなしで動作するはずだと思います。

関連する問題