2012-08-05 58 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");

希望這有助於。