Un problème pour appeler un web service avec OSB ?

arkzoyd_featuredimage2

Aujourd’hui, j’ai eu une drôle de mésaventure avec Oracle Service Bus : je dois pour la réalisation d’un flux, appeler un web service. Mon développement se passe à merveille, réalisation des XQuery, ProxyServices, et bien sur mon Business Service qui va appeler mon Web Service …

Au moment de tester, une erreur est survenue … le message de retour du web service peu évocateur :

SOAP-ENV:Client
 Le message XML est absent du paquet SOAP.

Évidemment recherche dans les logs avant l’envoi de OSB, le message est correct … en revanche.. pas moyen d »accéder aux logs côté web service; il s’agit d’une boite noire et on ne sait pas ce qu’il se passe à l’intérieur … Voilà bien ma veine …

Investigation : un test avec SOAPUI du message envoyé depuis OSB est quand à lui validé par le Web Service.

Bien … le problème vient de OSB ! On avance, mais maintenant à savoir où …

Commençons par le business service, redécouvrons les paramétrages au niveau de Eclipse. Il y a des options à cocher à décocher … et … ah tiens … il y a un menu fermé au niveau de l’onglet HTTP Transport.

Pourquoi la case « use chunked streaming mode » est-elle cochée ? Décochons cette case et retestons… Ah ça fonctionne ! le web service me renvoie un message plutôt accueillant !

Quelle est l’explication ? C’est simple en fait : ce mode activé par défaut permet d’envoyer le message par morceaux … et comme du côté serveur le keep alive est désactivé (et oui, on joue la sécurité ;-) ), la connexion est donc perdue entre deux morceaux de messages : ceci explique cela !

Pensez donc à décocher cette case :

About yuski59

has written 8 post in this blog.