2011-11-24 16 views
7

glassfishv3で動作するGWTプロジェクトではすべて正常に動作しますが、web.xmlからサーブレットクラス内の@WebServletアノテーションにマッピングするサーブレットURLパターンを変更すると、GWT rpc candがサーブレットを見つけます。@WebServletアノテーションとGWT RPC

他の通常のサーブレットはこのアノテーション(WebServlet)で動作し、GWT RPCは機能しません。

何故ですか?この機能はのみ3.0以降で使用可能ですので

RGDS

+0

他の通常のサーブレットはこの注釈で正しく動作し、GWT RPCには問題があることに注意してください。 – Nav

+0

これについての回答はありますか? – icfantv

答えて

6

あなたは、正しいサーブレットのバージョンにweb.xmlのweb-appのバージョン番号を設定しました:

<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
     version="3.0"> 
+0

はいバージョン3ですが、他のサーブレットはこのようなマッピング(@WebServlet)で動作しますが、GWT remoteServiceServletは機能しません。 – Nav

4

[OK]を、私は最終的にこれを得ましたいくつか注意が必要です。私はそれをIntellij内のTomcatとTomcat 7コンテナへのWARとして実装することができました。

-noserverを使用せずにdev-modeで動作させることができませんでした。これは、組み込みのJettyサーバーがJSR315と互換性がないためですが、gwt-dev jarのどのバージョンのjettyを判別しようとしていないため、この証拠はありません。

WebServletのパスを完全修飾する必要があります。したがって、リモートサービスインタフェースが "bar"の相対パスを持ち、モジュール名(gwt.xmlの名前の変更)が "foo"の場合、WebServletの "/ foo/bar"のパスを設定する必要があるパスとそれが動作します。

+0

これは古いですが、ここではサーブレット3.0アノテーションを埋め込みJettyサーバ; https://code.google.com/p/google-web-toolkit/issues/detail?id=8472 – Jonathan