0

WARディレクトリの下にあるxmlファイルからデータを読み取る必要があります。リクエストの作成に
使用しています。次のようになります。RequestBuilderGET

   RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET,"customerRecord.xml");  
   try {  
        requestBuilder.sendRequest(null, new RequestCallback() {  
            public void onError(Request request, Throwable exception) {  
                requestFailed(exception);  
            }  
            public void onResponseReceived(Request request,Response   response) {  
                renderXML(response.getText());  
            }  
        });  
    } catch (RequestException ex) {  
        requestFailed(ex);  
    }   

さて、すべてのデータをロードしたくないということです。サーバーにどの部分を持ってくるか(たとえば、データの行数)を指示するパラメーターを送信してから、サーブレットのdoGetメソッドをオーバーライドしてパラメーターを処理したいと思います。
2つの質問があります:
1)サーブレットのパスを宣言するにはどうすればよいですか?サーブレットとリクエストの間の接続はどこにありますか?2) ( "customerRecord.xml"の代わりに)
のURLに何を書きますか?RequestBuilderそこでサーブレットを参照する必要がありますか、それとも次のように保持できますか

4

1 に答える 1

1

あなたはGWTサービスを意味するのでしょうか?

2つのインターフェイスを作成する必要があります。ServiceとServiceAsync、およびサーバーパッケージ(クライアントパッケージと同じレベル)でのServiceの実装です。次に、実装をサーブレットとして定義します(私のJBoss 7.1ではアノテーションのみです。古いバージョンのサーブレットマッピングでは):

@WebServlet(name="YourService", urlPatterns={"/%module%/YourService"})
public class YourServiceImpl extends RemoteServiceServlet implements YourService 

modeule.xmlに次のように記述します。

<servlet path="/YourService" class="org.name.YourServiceImpl"/>

そして最後にあなたはあなたのコードからこのサービスを呼び出すことができます

YourService.App.getInstance().getSomething(new AsyncCallback<Collection<Something>>() {
        @Override
        public void onFailure(Throwable caught) {
            new MessagePopup("Error: " + caught.getMessage()).center();
        }

        @Override
        public void onSuccess(Collection<Something> result) {

        }
    });

最愛のIDEから作成できるインターフェース。はるかに簡単です)

まだ私を悩ませていると思う人がいます-別のモジュールでサーブレットのパスを指定することはできません。

于 2012-10-29T06:30:41.550 に答える