2009-07-15 4 views
0

Je suis en train de traiter un tronçon WebService généré automatiquement en Java (généré à l'aide de JAX-WS RI).En Java, lancement d'une exception lorsqu'une connexion réseau est perdue lors d'un appel de service Web (similaire à WCF CommunicationException)

Mon service actuel est un programme .Net exposant son service Web à l'aide du WCF basicHttpBinding.

Comment traiter les problèmes de communication pendant l'appel WebService actuel? (c'est-à-dire de la façon dont WCF sur le client vous enveloppez votre appel avec une exception CommunicationException si des problèmes de communication/réseau ont été rencontrés).

Il semble qu'il n'y ait aucune exception vérifiée pour traiter ceci. (Lorsque je vois l'interface stub générée automatiquement par les méthodes de service Web, je ne lance pas d'exception, sauf les exceptions/messages FaultException prédéfinis exposés par WSDL). En outre, quand j'ai réellement testé ce qui se passerait lors d'un appel WebService si le réseau était déconnecté, le client se bloque simplement sur l'appel, au lieu de lancer même une sorte d'exception d'exécution.

Pensées?

Merci

+0

Il semble que votre question concerne entièrement le client/stub Java et n'a rien à voir avec le service WCF. Est-ce exact? – Randolpho

+0

Vous pourriez utiliser WS-ReliableMessaging pour faire face à ce genre de problèmes – akarnokd

+0

Yep c'est à quoi ça ressemble. Je pense que le stub doit être généré d'une manière ou d'une autre, afin d'exposer une sorte d'exception vérifiée pour les erreurs de communication (comme une exception javax.xml.soap.SOAP). – vicsz

Répondre

0

Pourquoi pensez-vous qu'il est utile d'avoir à faire face à une erreur de communication (par exemple en raison d'une défaillance du réseau) comme vérifié exception? Comment l'appelant d'un webservice pourrait-il traiter utilement une telle éventualité?

Il me semble préférable d'autoriser une exception non gérée à propager la pile jusqu'à un point où elle peut raisonnablement être gérée.

+0

Il pourrait s'agir d'une exception d'exécution, mais dans mon cas, il semble qu'aucune exception n'est levée et que l'appel de service se bloque simplement. Dans une application .Net WCG Client correspondante, je peux capturer CommunicationExceptions et TimeOutExceptions et traiter le cas échéant. – vicsz

Questions connexes