2
工作我使用GWT并创建一个HTTP请求,但我在访问从生产版本的文件,即使它的正常工作中的发展问题。我的主程序在客户端有以下要求。GWT请求生成器没有生产工作,但在发展
static final String dataURL = GWT.getModuleBaseURL() + "interpretData";
public void onModuleLoad() {
requestData(dataURL, new AsyncCallback<String>() {
public void onFailure(Throwable caught) {
RootPanel.get(holderId).add(new Label(error + ": Asynchronous call failed - " + caught.getLocalizedMessage()));
return;
}
public void onSuccess(String JSON){
try{
// code executed on success
} catch (Exception e) {
RootPanel.get(holderId).add(new Label(error + ": " + e.getMessage()));
return;
}
}
});
}
public static void requestData(final String url, final AsyncCallback<String> callback) {
// create a request for the xml data on the server
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);
builder.setCallback(new RequestCallback() {
public void onError(Request request, Throwable exception) {
callback.onFailure(exception);
}
public void onResponseReceived(Request request, Response response) {
try {
final int responseCode = response.getStatusCode()/100;
if (url.startsWith("file:/") || (responseCode == 2) || (responseCode == 0)){
callback.onSuccess(response.getText());
} else {
callback.onFailure(new IllegalStateException(" Http Error: #" + response.getStatusCode() + " - " + response.getStatusText()));
}
} catch (Throwable e) {
callback.onFailure(e);
}
}
});
在服务器端,我有:
public class interpretData extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
response.setContentType("application/json");
// code to return a String
}
最后,我的XML文件中有以下内容:
<servlet>
<servlet-name>interpretData</servlet-name>
<servlet-class>com.gmod.caeli.server.interpretData</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>interpretData</servlet-name>
<url-pattern>/caeli/interpretData</url-pattern>
</servlet-mapping>
最后,我可以访问由文件:http://127.0.0.1:8888/caeli/interpretData因此开发版本是完全没问题,但我不知道如何得到它的生产工作(我打电话生产的URL为file:///〜/工作区/ caeli /战争/ caeli/interpretData )我搜索了例子但我没有发现我做错的任何线索。我试着用tomcat设置它,我也有404错误。我觉得我错过了一些小事,所以希望这是足够的信息让别人注意到有什么问题。
好的,我明白了,所以我做了一些更改,以便我可以在tomcat上托管应用程序,但是我现在正面临另一个开发与生产问题,其中我得到了一个405错误的tomcat服务器说: 指定所请求的资源不允许使用HTTP方法(此URL不支持HTTP方法GET)。 我在开发版本中没有这个问题。这是否与tomcat有关? – Ahmed
您要求的新网址是什么? – David
http://127.0.0.1:8080/Caeli/caeli/interpretData – Ahmed