Пример Android GCM, ошибка при отправке сообщения с сервера
Я следую учебному пособию по адресу http://developer.android.com/guide/google/gcm/demo.html. Я использую веб-сервер (это бесплатный сервер jsp в сети, а не localhost). Все было хорошо, мое устройство было успешно зарегистрировано на сервере, на странице было указано 1 устройство зарегистрировано. Однако, когда я нажимаю кнопку отправить сообщение, появляется сообщение об ошибке ниже. Интересно, это сервер, который я использовал, воспрепятствовал какому-либо методу (чтобы я сменил сервер) или в коде примера, предоставленном Google, есть лазейка? ТКС.
Извините, отчет об исключении слишком длинный (но не знаю, что нужно)
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:468)
com.google.android.gcm.server.Sender.post(Sender.java:447)
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:76)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
sun.reflect.GeneratedMethodAccessor47.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.23 logs.
1 ответ
Убедитесь, что вы вставили правильный ключ API в приложение. Попробуйте использовать ключ API "Браузер" вместо ключа API "Сервер".