【问题标题】:GCM server crashes on online domainGCM 服务器在在线域上崩溃
【发布时间】:2012-09-02 18:46:31
【问题描述】:

嘿,我一直在关注 gcm 教程来创建 gcm-demo-server 和 demo-client。 一切都在tomcat上运行良好,

然后我将 .war 文件上传到一个免费的 jsp 域中

首先页面显示“未注册设备” 我从我的 android 注册后,似乎注册了 1 台设备

我按下发送按钮在设备上发送通知,服务器崩溃并出现以下错误

    ype Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.security.AccessControlException: access denied (java.net.SocketPermission android.googleapis.com:443 connect,resolve)
    java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
    java.security.AccessController.checkPermission(AccessController.java:546)
    java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
    java.lang.SecurityManager.checkConnect(SecurityManager.java:1034)
    sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
    sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:271)
    sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:328)
    sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:172)
    sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:793)
    sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:158)
    sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:896)
    sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230)
    com.google.android.gcm.server.Sender.post(Sender.java:479)
    com.google.android.gcm.server.Sender.post(Sender.java:458)
    com.google.android.gcm.server.Sender.sendNoRetry(Sender.java:170)
    com.google.android.gcm.server.Sender.send(Sender.java:121)
    com.google.android.gcm.demo.server.SendAllMessagesServlet.doPost(SendAllMessagesServlet.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:274)
    org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:271)
    java.security.AccessController.doPrivileged(Native Method)
    javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
    org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:306)
    org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:166)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.26 logs.

【问题讨论】:

    标签: android jsp servlets google-cloud-messaging java-server


    【解决方案1】:

    看起来一些身份验证问题可能是由于您使用的密钥。我不知道其中的确切问题。请参考本教程,它可能会对您有所帮助,

    http://androidv5.wordpress.com/2012/08/15/how-to-implement-google-cloud-messaging/

    对我来说很好用。

    【讨论】:

    • 是的,我也遵循了本教程,我的服务器在 tomcat 上运行良好当我尝试从在线服务器/在线域发送消息时出现问题
    • 在服务器端提供一些日志(sysout)并检查它发送到移动设备的响应。并且查看手机登录也可以找到问题所在
    • 不需要问题出在权限上..我已经通过谷歌挖掘..解决这个问题的方法是我需要有 server.policy 和 client.policy 文件来定义权限,但我不知道在哪里找到它们
    猜你喜欢
    • 1970-01-01
    • 2016-02-11
    • 2015-05-01
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    • 2021-08-25
    • 2016-06-12
    相关资源
    最近更新 更多