J'ai développé un service Web en utilisant JAX-WS (v2.1.3 - Sun JDK 1.6.0_05) qui fonctionne très bien lorsque j'utilise un client Java ou SoapUI ou d'autres outils de test des services Web . Je dois consommer ce service à l'aide Microsoft SQL Server 2005 Reporting Services et je reçois l'erreur suivanteMicrosoft SSRS consommant le service Web JAX-WS
<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
<faultcode>S:Client</faultcode>
<faultstring>Couldn't create SOAP message due to exception: XML reader error: unexpected character content:
"?"
</faultstring>
</S:Fault>
</S:Body>
</S:Envelope>
Si j'utilise un proxy HTTP pour flairer ce que SSRS envoie, je vois EF BB BF comme le début de la Le corps du message et JAX-WS n'aiment pas ça. Si je supprime les caractères spéciaux et soumettez à nouveau la demande à l'aide de Fiddler, l'appel de service Web fonctionne.
Ma question est pourquoi SSRS introduit ces caractères spéciaux et comment puis-je l'arrêter? Si je ne peux pas l'arrêter, comment puis-je faire en sorte que JAX-WS les ignore? Voici ma requête SSRS:
<Query>
<Method Name="getOneUser" Namespace="http://vinny.com" >
</Method>
</Query>
J'ai aussi essayé une requête comme ceci ci-dessous:
<Query>
<Method Name="getOneUser" Namespace="http://vinny.com" >
</Method>
<SoapAction>http://vinny.com/getOneUser</SoapAction>
<ElementPath IgnoreNamespaces="true">*</ElementPath>
</Query>
Est-ce que quelqu'un a des idées sur ce que je peux essayer? J'ai essayé plusieurs types d'annotations sur le côté JAX-WS pour changer le type de SOAPBinding, etc. mais rien ne semble le faire fonctionner avec Microsoft SSRS.
Merci Eric. SSRS est la seule chose qui ajoute la nomenclature au corps du message. J'ai utilisé SSIS et même créé une application .NET en C# et ils consomment tous très bien le webservice. –
Sur une note non liée, merci beaucoup d'avoir écrit Fiddler. J'AIME FIDDLER et je ne peux pas imaginer développer des webapps sans. Merci Eric pour avoir créé cet outil génial. –