2012-05-29 1 views
2

AppEngine est censé lancer ChannelFailureException chaque fois qu'il y a une erreur dans l'envoi de message à un canal, par ex. quand un canal n'est pas connecté.appengine ChannelFailureException n'est pas lancé dans le développement

Il semble que le serveur de dev ne lance pas cette exception. Il montre un avertissement dans la console:

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

cet avertissement semble être généré par: com.google.appengine.api.channel.dev.LocalChannelFailureException

Toutefois, l'exception réelle (c.-à-com.google.appengine.api.channel.ChannelFailureException) n'est pas lancé. Est-ce que n'importe quel corps sait comment tester cette exception dans le développement?

Répondre

1

Dans le cas où un canal n'est pas connecté et que vous essayez de lui envoyer un message, aucune erreur ne devrait se produire. L'exception ChannelFailureException est émise dans les cas où vous fournissez un client ou un message mal formé, ou s'il y a un problème avec l'infrastructure du canal, de sorte que le message ne peut pas être envoyé.

+0

ok, donc est le comportement ci-dessus ne présente dans l'environnement de dev? Pourriez-vous préciser ** pourquoi l'avertissement: Passer un message vers un canal non connecté: est affiché? **. Cet avertissement s'affiche uniquement lorsque le canal n'est pas connecté (c'est-à-dire que l'utilisateur est déconnecté). Le clientId et le message sont bien formés. Si l'utilisateur est connecté, le message est envoyé sans avertissement en utilisant le même clientId et le même message. –

+0

L'avertissement est juste informatif. Cela n'arrivera pas en production. –

+0

oh ok. donc cette exception sera levée lorsque l'infrastructure du canal échouera. Alors, que pouvons-nous faire de plus quand cela arrive? Devrions-nous réessayer d'envoyer le message? Et puisque l'exception n'est pas lancée dans dev, je suppose que la seule façon de tester (si possible) serait de télécharger et d'essayer jusqu'à ce qu'elle jette cette exception? –

0

Cet état apparaît également lorsque vous mélangez le jeton et l'ID client. Dans mon cas, ce fut parce que je voulais créer un

message = ChannelMessage(token, message); 

au lieu de

message = ChannelMessage(clientId, message); 

String token = channelService.createChannel(clientId); 
Questions connexes