Question

Je dois utiliser un service Web tiers implémenté dans .NET 2.0 (sous IIS, bien sûr).

Je dois créer un client java. J'utilise wsdl2java pour générer le stub SOAP.

Le projet Apache Axis d'origine ne semblant plus entretenu et j'avais quelques problèmes pour analyser certaines réponses du service, j'ai converti le client pour qu'il utilise la dernière version (1.5) d'Axis2. À présent, le service .NET ne reconnaît même pas mes requêtes.

J'ai réussi à obtenir le "chunking". désactivé (où "stub" est une variable de type MumbleStub générée par wsdl2java et sur laquelle figurent plusieurs lignes de code sous la forme d'une ligne horrible):

stub._getServiceClient().getOptions().setProperty( HTTPConstants.CHUNKED, Boolean.FALSE);

.. afin qu'au moins le service reconnaisse ma requête AS , même si elle est mauvaise: " HTTP / 1.1 400 Requête incorrecte " est la réponse maintenant (par opposition à une page "intro / summary" qui me propose un lien vers le WSDL).

J'ai remarqué que la demande Axis ("1") avait un en-tête Content-TYpe différent (text / xml, vs application / soap-xml), et je me demande comment changer cet en-tête de requête, s'il est présent. fait le problème.

Sinon, quelqu'un d'autre a-t-il eu ce problème? Le problème est-il vraiment le (non lisible ici, car il ressemble à "l'injection d'élément" dans le moteur de blog) ... ... ... " balise XML méta-intro " qu'Axis2 a ajouté au début de la demande?

WS-Deathstar, en effet.

Était-ce utile?

La solution

Comme vous mentionnez l'en-tête de type de contenu différent, je suppose que votre client essaie d'envoyer des requêtes SOAP 1.2 et que l'application tierce ne comprend que SOAP 1.1

.

Essayez de changer la version de soap utilisée, car AFAIK AXIS2 utilise SOAP 1.2 par défaut

stub._getServiceClient().getOptions().setSoapVersionURI(org.apache.axiom.soap.SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top