11 votes

Consommation d'un WebService WCF WsHttpBinding en Java

J'essaie de faire en sorte qu'un client Java communique avec un WebService WCF wshttpbinding. Mais je n'y parviens pas. Soit l'appel se bloque, soit j'obtiens "musunderstoodheader expcetions".

Mon service Web est simplement le "WCF Service Library Template" généré par défaut par Visual Studio.

Mon client de service Web est juste un projet IntelliJ vierge, avec le stub correspondant généré à l'aide de "Add Web Service Client" (la plate-forme de service Web spécifiée est JAX-WS 2.X).

Lorsque je change mon binding en BasicHttpBinding, tout fonctionne parfaitement.

J'ai essayé de jouer avec la configuration de WsHttpBinding, y compris en désactivant la sécurité, mais je n'ai pas réussi.

Suggestions ? Réflexions ? Le WsHttpBinding n'est-il que partiellement supporté par JAX-WS 2.0 ?

14voto

Randolpho Points 36512

Votre problème est que JAX-WS ne supporte pas les mêmes protocoles WS qui sont utilisés dans le wsHttpBinding. Vous devez utiliser WSIT à la place. Le WSIT est disponible dans le cadre du programme Métro qui est également disponible sur Verre de mer .

Je recommande d'utiliser wsHttpBinding ou ws2007HttpBinding lorsque cela est possible, mais vous pouvez toujours faire un service assez sécurisé avec basicHttpBinding sur SSL/Transport Auth.

0voto

J'examinerais attentivement votre configuration WCF et supprimerais toutes les propriétés d'authentification, d'autorisation, etc. Rappelez-vous, par défaut, WCF exposera votre service de manière sécurisée en utilisant un transport/liaison sécurisé. Par conséquent, à moins que vous ne configuriez votre client Java pour honorer ces demandes de sécurité, il échouera très probablement à s'authentifier et vous ne verrez pas les deux converses.

Une fois que les deux se parlent, ajoutez progressivement chaque élément de sécurité jusqu'à ce que votre client Java soit correctement configuré.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X