0

我需要从 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 方法并处理参数。
我有 2 个问题:
1)如何声明 servlet 的路径?servlet 和请求之间的连接在哪里?
2)我在RequestBuilder(而不是“customerRecord.xml”)的网址中写什么?我是否需要参考那里的 servlet 或者我可以保留它

4

1 回答 1

1

可能是您的意思是 GWT 服务?

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

@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 中创建界面。简单多了)

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

于 2012-10-29T06:30:41.550 回答