2013-02-27 65 views
0

我正在GCM(Android)上開發示例應用程序。其中我使用tomcat服務器發送消息。以及接收消息的設備。每件事情都很好,除非我的WiFi關閉。一旦我的Wi-Fi關閉,我不再收到我的設備和瀏覽器的消息,我得到以下錯誤。任何人都可以知道wifi和GCM服務之間的聯繫。爲什麼tomcat依賴於wi-fi

HTTP Status 500 - 

type Exception report 

message 

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

exception 

java.net.UnknownHostException: android.googleapis.com 
    java.net.PlainSocketImpl.connect(Unknown Source) 
    java.net.SocksSocketImpl.connect(Unknown Source) 
    java.net.Socket.connect(Unknown Source) 
    com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(Unknown Source) 
    com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(Unknown Source) 
    sun.net.NetworkClient.doConnect(Unknown Source) 
    sun.net.www.http.HttpClient.openServer(Unknown Source) 
    sun.net.www.http.HttpClient.openServer(Unknown Source) 
    sun.net.www.protocol.https.HttpsClient.<init>(Unknown Source) 
    sun.net.www.protocol.https.HttpsClient.New(Unknown Source) 
    sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(Unknown Source) 
    sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) 
    sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source) 
    sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source) 
    sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(Unknown Source) 
    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:82) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.33 logs. 

欲瞭解更多信息,請隨時詢問!

+0

如果你複製了堆棧跟蹤並粘貼到這裏,那會不會更好? – SudoRahul 2013-02-27 06:18:41

+0

完成RJ。我猜它現在更具可讀性 – random4Infinity 2013-02-27 06:21:35

+0

您的服務器不能再聯繫Google GCM服務器。它是否可能通過相同的WiFi網絡連接到互聯網? – Henry 2013-02-27 06:22:25

回答

3

如果發送了通知,它將首先從您的服務器轉到Google GCM服務器,然後從GCM服務器轉到電話。這兩個鏈接必須啓動並運行,以便通知到達。

看起來你已經打斷了從服務器到互聯網的連接,當你關閉WiFi。它不再能夠連接到Google服務器。

+0

嘿,謝謝Henry的簡單解釋。得到它了。現在你們都答對了,哪一個接受。我應該在meta中發佈另一個問題來問這個,lol:D – random4Infinity 2013-02-27 06:38:22

+0

它取決於你,接受你認爲更有用的那個。 – Henry 2013-02-27 06:42:50

+0

還有一件事。爲什麼當我通過LAN電纜連接到互聯網時。並嘗試註冊我的設備,我無法註冊? – random4Infinity 2013-02-27 06:44:06

2

是的,它應該告訴你一個錯誤。

原因:我假設您正在使用本地網絡連接訪問GSM服務。所以你的設備/手機正在等待你的WiFi連接。

+0

你能解釋一下嗎?或任何鏈接或文檔來支持答案。它對我不清楚! – random4Infinity 2013-02-27 06:23:30

+0

您正在使用手機中的Wifi連接訪問GCM服務,對不對? – user2060383 2013-02-27 06:24:29

+0

是的。而且我通過數據線連接到我的設備。那爲什麼它會利用這個? – random4Infinity 2013-02-27 06:27:29