2012-08-05 88 views
0

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

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

哪里plac是我的项目空间,它驻留和reg是URLPATTERN。我最终会得到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> 
+0

你可以发布你的web xml的相关部分吗? – 2012-08-05 17:40:41

+0

@DanielKurka我已更新relavent web.xml – Rangesh 2012-08-05 17:56:14

回答

2

你的代码需要看起来像这样:

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

第一个参数是URL到你的情况,你的模块,这应该是:

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

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

"reg" 
+0

我确实改变了方法,就像您指定的那样,但仍然收到状态码异常0 – Rangesh 2012-08-06 15:06:34

+0

您的模块文件位于何处(哪个url)? – 2012-08-07 09:05:56

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.

你在电话环境中运行吗?

如果是确保允许wildcart访问服务器:PhoneGap external hosts wildcard

+0

是的,我确实做了更改,并在cordova.xml(phonegap)中的中为我的ip定义了权限..很糟糕,我最终使用com.googlewebclient .rpc 404找不到对象! – Rangesh 2012-08-06 17:25:57

+0

404比0好,因为你已经连接了服务器。 – 2012-08-17 22:04:45

0

我只是有这让我挣扎了大量的时间同样的问题。在某些时候,我碰到它看起来与上面的有点不同的解决方案:

当您从浏览器中调用http://myip:8888/plac/reg它应该返回 HTTP Status 405 - HTTP method GET is not supported by this URL,如果它是指所需的服务。 否则,网址缺少一些东西 - 看你提供的资源我猜你的GWT网络应用程序的名称是缺失的。

尝试http://myip:8888/YourAppName/plac/reghttp://myip:8888/YourAppName是您用来从浏览器中拉起您的GWT应用程序的网址。

所以,代码应该是这样的: PhonegapUtil.prepareService(serv,"http://myip:8888/YourAppName/plac/","reg");

希望这有助于。