我需要从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,或者我可以保持它像
答案 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的路径。