Java 无法使gwt syncproxy正常工作
我正在尝试让一个非常简单的gwt syncproxy示例在Eclipse开发人员模式下工作。我创建了示例GWT/GAE项目,并将其命名为“testgwtrpc”。我验证了这可以发送问候语并接收服务器的响应。我创建了以下独立Java程序来调用GWT RPCJava 无法使gwt syncproxy正常工作,java,gwt,gwt-rpc,gwt-syncproxy,Java,Gwt,Gwt Rpc,Gwt Syncproxy,我正在尝试让一个非常简单的gwt syncproxy示例在Eclipse开发人员模式下工作。我创建了示例GWT/GAE项目,并将其命名为“testgwtrpc”。我验证了这可以发送问候语并接收服务器的响应。我创建了以下独立Java程序来调用GWT RPC SyncProxy.setBaseURL("http://127.0.0.1:8888/testgwtrpc/"); GreetingServiceAsync greetingServiceAsync = SyncProxy.c
SyncProxy.setBaseURL("http://127.0.0.1:8888/testgwtrpc/");
GreetingServiceAsync greetingServiceAsync = SyncProxy.create(GreetingService.class);
greetingServiceAsync.greetServer("Hello", new AsyncCallback<String>() {
@Override
public void onFailure(Throwable caught) {
}
@Override
public void onSuccess(String result) {
System.out.println("From server: " +result);
}
});
}
看起来这应该很简单,但是,唉,它不起作用
你知道为什么吗?非常感谢您的帮助。请检查此项
无法找到RPC策略文件GWT编译您的web应用,请确保
您的服务正在您期望的位置运行(部署与本地)
测试URL),如果使用GAE,请确保更改
appengine-web.xml,如Eclipse中的Android设置部分所述。
本质上,您需要确保.gwt.rpc文件
可从“远程”Android客户端访问
检查这个
无法找到RPC策略文件GWT编译您的web应用,请确保
您的服务正在您期望的位置运行(部署与本地)
测试URL),如果使用GAE,请确保更改
appengine-web.xml,如Eclipse中的Android设置部分所述。
本质上,您需要确保.gwt.rpc文件
可从“远程”Android客户端访问
检查这个
无法找到RPC策略文件GWT编译您的web应用,请确保
您的服务正在您期望的位置运行(部署与本地)
测试URL),如果使用GAE,请确保更改
appengine-web.xml,如Eclipse中的Android设置部分所述。
本质上,您需要确保.gwt.rpc文件
可从“远程”Android客户端访问
检查这个
无法找到RPC策略文件GWT编译您的web应用,请确保
您的服务正在您期望的位置运行(部署与本地)
测试URL),如果使用GAE,请确保更改
appengine-web.xml,如Eclipse中的Android设置部分所述。
本质上,您需要确保.gwt.rpc文件
可从“远程”Android客户端访问
确保您已经执行了GWT编译(即右键单击testgwtrpc项目,
Google->GWT编译
)。在Eclipse和Dev模式下进行测试不需要这些文件,因为它是由GWT的托管服务器系统处理的。但是独立系统和Android系统是分开的,因此需要访问GWT编译创建的文件。确保您已经执行了GWT编译(即右键单击您的testgwtrpc项目,Google->GWT Compile
)。在Eclipse和Dev模式下进行测试不需要这些文件,因为它是由GWT的托管服务器系统处理的。但是独立系统和Android系统是分开的,因此需要访问GWT编译创建的文件。确保您已经执行了GWT编译(即右键单击您的testgwtrpc项目,Google->GWT Compile
)。在Eclipse和Dev模式下进行测试不需要这些文件,因为它是由GWT的托管服务器系统处理的。但是独立系统和Android系统是分开的,因此需要访问GWT编译创建的文件。确保您已经执行了GWT编译(即右键单击您的testgwtrpc项目,Google->GWT Compile
)。在Eclipse和Dev模式下进行测试不需要这些文件,因为它是由GWT的托管服务器系统处理的。但是独立系统和Android系统是分开的,因此需要访问GWT编译创建的文件。来自@JCricket和@Ahmed El-Fayomy的综合答案提供了我需要的信息,以使这项工作正常进行。非常感谢你们两位。我决定整合你的答案,以便给下一个有同样问题的人一个更完整、更清晰的答案
正如JCricket所说,您必须进行GWT编译,因为GWT syncproxy从App Engine应用程序下载多个文件,包括compilation-mappings.txt和*.GWT.rpc文件。GWT编译生成这些文件。但是,您会发现通过gwt syncproxy的RPC调用仍然失败,除非您指定给app engine以允许客户端下载*.gwt.RPC文件。这是按照Ahmed给出的链接中所述进行的。具体而言,在appengine-web.xml的“静态文件”部分中,更改:
<exclude path="**.gwt.rpc" /> to <include path="**.gwt.rpc" />
到
还有一件事:
从客户端应用程序调用SyncProxy.setBaseURL()时,我使用了以下URL:
其中,“testgwtrpc”是模块名,在my.gwt.xml文件中重命名
我还没有在生产模式下尝试过这个,只是在开发模式下。来自@JCricket和@Ahmed El-Fayomy的综合答案提供了我需要的信息来让这个工作正常进行。非常感谢你们两位。我决定整合你的答案,以便给下一个有同样问题的人一个更完整、更清晰的答案 正如JCricket所说,您必须进行GWT编译,因为GWT syncproxy从App Engine应用程序下载多个文件,包括compilation-mappings.txt和*.GWT.rpc文件。GWT编译生成这些文件。但是,您会发现通过gwt syncproxy的RPC调用仍然失败,除非您指定给app engine以允许客户端下载*.gwt.RPC文件。这是按照Ahmed给出的链接中所述进行的。具体而言,在appengine-web.xml的“静态文件”部分中,更改:
<exclude path="**.gwt.rpc" /> to <include path="**.gwt.rpc" />
到
还有一件事:
从客户端应用程序调用SyncProxy.setBaseURL()时,我使用了以下URL:
其中,“testgwtrpc”是模块名,在my.gwt.xml文件中重命名
我还没有在生产模式下尝试过这个,只是在开发模式下。来自@JCricket和@Ahmed El-Fayomy的综合答案提供了我需要的信息来让这个工作正常进行。非常感谢你们两位。我决定把你的答案综合起来
compilation-mappings.txt
*.nocache.js
*.cache.html
*.gwt.rpc