gwt - servlet路径+ url

时间:2012-10-21 10:00:12

标签: gwt servlets

我需要从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”)中写了什么?我需要在那里引用servlet,或者我可以保持它像

1 个答案:

答案 0 :(得分:1)

可能你的意思是GWT服务?

您需要创建2个接口 - 服务和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的路径。