【问题标题】:GWT PhoneGap RPC - status exception 0GWT PhoneGap RPC - 状态异常 0
【发布时间】:2012-08-05 17:08:46
【问题描述】:

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 是我所在的项目空间,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>  

【问题讨论】:

  • 你能发布你的 web xml 的相关部分吗?
  • @DanielKurka 我已经更新了相关的 web.xml

标签: java gwt cordova mgwt


【解决方案1】:

您的代码需要如下所示:

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

第一个参数是你的模块的url,在你的情况下应该是:

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

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

"reg"

【讨论】:

  • 我确实改变了方法,就像你指定的那样,但我仍然收到状态码异常 0
  • 你的模块文件在哪里(哪个 url)?
【解决方案2】:

尝试添加模式:

<!-- 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

【讨论】:

  • 是的,我确实进行了更改,并且还在 cordova.xml(phonegap) 中的 my ip:888*"/> 中定义了我的 ip 的权限.. 糟糕的是我结束了com.googlewebclient.rpc 404 找不到对象!
  • 404比0好,因为你已经连接了服务器。
【解决方案3】:

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

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

试试http://myip:8888/YourAppName/plac/reg,而http://myip:8888/YourAppName 是您用来从浏览器中调出您的GWT 应用程序的网址。

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

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2012-04-18
    • 2012-03-21
    • 1970-01-01
    • 2012-01-21
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多