2012-05-29 25 views
2

當發送消息到一個通道發生錯誤時,AppEngine應該拋出ChannelFailureException,例如,當一個頻道沒有連接時。appengine ChannelFailureException不會在開發中拋出

它似乎像開發服務器不會引發此異常。它確實顯示在控制檯的警告:

com.google.appengine.api.channel.dev.ChannelManager sendMessage 
WARNING: Skipping message to unconnected channel: <clientId> 

這一警告似乎是由產生: com.google.appengine.api.channel.dev.LocalChannelFailureException

然而,實際的異常(即com.google.appengine.api.channel.ChannelFailureException)不會拋出。任何機構是否知道如何在開發中測試此異常?

回答

1

在通道未連接且您試圖向其發送消息的情況下,預計不會出現任何錯誤。

如果您提供格式錯誤的客戶端或消息,或者通道基礎結構存在問題,導致無法發送消息,則會引發ChannelFailureException。

+0

好了,就是上述行爲只存在於開發環境?請您詳細說明**爲什麼顯示警告:跳過未連接頻道的訊息:?**。僅當通道未連接時(即用戶已註銷)纔會顯示此警告。 clientId和消息格式良好。如果用戶已登錄,則使用相同的clientId和消息發送未經警告的消息。 –

+0

警告只是提供信息。它不會發生在生產中。 –

+0

哦,好的。以便在Channel架構失敗時引發異常。那麼發生這種情況時我們能做的最多的是什麼?我們是否應該重試發送消息?並且由於該異常不會引發到開發中,我想測試(如果可能的話)的唯一方法是上傳並嘗試,直到它拋出異常? –

0

當你混淆令牌和clientId時,這個狀態也會出現。在我的情況,那是因爲我試圖創建的

message = ChannelMessage(token, message); 

代替

message = ChannelMessage(clientId, message); 

其中

String token = channelService.createChannel(clientId); 
相關問題