gwt-servlet路径+;网址

gwt-servlet路径+;网址,gwt,servlets,Gwt,Servlets,我需要从WAR目录下的xml文件中读取数据。 我正在使用RequestBuilder创建GET请求。 看起来是这样的: RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET,"customerRecord.xml"); try { requestBuilder.sendRequest(null, new RequestCallback() { pu

我需要从WAR目录下的xml文件中读取数据。
我正在使用
RequestBuilder
创建
GET
请求。 看起来是这样的:

   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);  
    }   
现在,问题是我不想加载所有的数据。我想发送一个参数,告诉服务器要带哪一部分(比如,多少行数据),然后重写servlet的doGet方法并处理该参数。
我有两个问题:
1) 如何声明servlet的路径?servlet和请求之间的连接在哪里??

2) 在
RequestBuilder
(而不是“customerRecord.xml”)的url中写什么?我需要在那里引用servlet吗?或者我可以像保存它一样保存它。你是说GWT服务吗

您需要创建两个接口—服务和ServiceAsync以及服务器包中的服务实现(与客户端包处于同一级别)。然后将实现定义为servlet(在我的JBoss 7.1中,它只是注释。在旧版本的servlet映射中):

在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) {

        }
    });
YourService.App.getInstance().getSomething(新的AsyncCallback()){
@凌驾
失败时的公共无效(可丢弃){
新建MessagePopup(“错误:+catch.getMessage()).center();
}
@凌驾
成功时公开作废(收集结果){
}
});
可以从您喜爱的IDE创建的接口。这要简单得多)

有一种想法仍然困扰着我——我无法在另一个模块中指定servlet的路径

找到解决方案
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) {

        }
    });