0

RPC 调用在我的本地主机中成功运行,当我使用 phonegap 集成推送项目并在 android 模拟器中进行测试时Rpc call fails and throws status exception 0 or gwt rpc Object not found-404。我确实参考了gwt phonegap rpc-Daniel 的教程,并做了上面提到的更改:

final ServiceDefTarget serv=(ServiceDefTarget)checkuser;
Window.alert(serv.getServiceEntryPoint());
PhonegapUtil.prepareService(serv,"http://myip:8888/plac/reg","reg");

plac我的项目空间在哪里,它所在的位置是regURLPattern。我最终要么status code 0例外,要么StatusCodeException 404 Notfound.

请让我知道我错在哪里。

Web.xml:

<!-- Servlets -->
<servlet>
<servlet-name>Register</servlet-name>
<servlet-class>com.plac.server.Register</servlet-class>
</servlet>  
<servlet-mapping>
<servlet-name>Register</servlet-name>
<url-pattern>/plac/reg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Register</servlet-name>
<url-pattern>/plac/signup</url-pattern>
</servlet-mapping>  
4

3 回答 3

2

您的代码需要如下所示:

PhonegapUtil.prepareService(serv,"http://myip:8888/plac/","reg");

第一个参数是您的模块的网址,在您的情况下,这应该是:

"http://myip:8888/plac/"

以及您的服务的相对网址(到您的模块)

"reg"
于 2012-08-06T13:35:53.627 回答
0

我只是遇到了同样的问题,这让我挣扎了好几个小时。在某些时候,我遇到了看起来与上面的解决方案有点不同的解决方案:

当您http://myip:8888/plac/reg从浏览器 调用时HTTP Status 405 - HTTP method GET is not supported by this URL,如果它引用所需的服务,它应该返回。否则 url 会丢失一些东西 - 查看您提供的资源,我猜您的 GWT Web 应用程序的名称丢失了。

Try http://myip:8888/YourAppName/plac/regwhilehttp://myip:8888/YourAppName是您用来从浏览器中提取 GWT 应用程序的 url。

因此,代码应如下所示: PhonegapUtil.prepareService(serv,"http://myip:8888/YourAppName/plac/","reg");

希望这可以帮助。

于 2014-11-23T22:34:27.307 回答
0

尝试添加模式:

<!-- Servlets -->
<servlet>
<servlet-name>Register</servlet-name>
<servlet-class>com.plac.server.Register</servlet-class>
</servlet>  
<servlet-mapping>
<servlet-name>Register</servlet-name>
<url-pattern>/plac/reg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Register</servlet-name>
<url-pattern>/plac/reg/*</url-pattern>
</servlet-mapping>

您的 URL 可能附加了 / 。在这种情况下,您将获得 404。

您是否在 phonegap 环境中运行?

如果是,请确保允许通配符访问服务器:PhoneGap external hosts wildcard

于 2012-08-06T16:00:56.640 回答