2009-04-27 11 views
0

J'ai un problème avec JAX-WS et AXIS. JAX-WS (2.1.7) en tant que client, Axis (1.4.x) en tant que serveur.Client JAX-WS avec serveur AXIS; espace de noms manquant en réponse

Tout fonctionne bien, mais la réponse ne peut pas être lue en Java.

Réponse:

<?xml version="1.0" encoding="UTF-8"?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <soapenv:Body> 
    <ns1:myserviceResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://my/service"> 
    <ns1:myserviceReturn xsi:type="xsd:string">responsestring</ns1:myserviceReturn> 
    </ns1:myserviceResponse> 
</soapenv:Body> 
</soapenv:Envelope> 

Le problème est que si ns1: déclaration -nameSpace est retirée de myserviceReturn, JAX-WS est en mesure de retourner quoi que ce soit d'autre que nul. Est-ce que quelqu'un sait comment forcer JAX-WS à ignorer les espaces de noms, comment modifier manuellement la réponse SOAP pour exclure "ns1", ou d'autres idées pour ce genre de problème?

Répondre

1

Vous devez écrire un fichier WSDL personnalisé qui n'inclut pas l'espace de nom. Ce fichier va dans le répertoire META-INF. Vous pouvez commencer avec celui par défaut de votre application, puis enregistrez-le ici.