2011-09-17 3 views
0

J'ai mis en place un client webservice qui est utilisé dans une application web (en utilisant Spring) et ce client reçoit une réponse dans laquelle CXF bailsout et me donne un message d'erreur.Client webservice CXF, comment gérer la réponse d'un webservice appelé?

Le message d'erreur est:

serveur ne reconnaît pas la valeur de tête HTTP SOAPAction

J'ai trouvé le problème, mais ne sais pas ce que je peux faire pour régler mon webservice gestion des réponses

La réponse xml ci-dessous fonctionne sans aucun problème.

Fonctionne et est acceptée ok!

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bar="http://www.dummyurl.com/service-v1.0/"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <bar:StartSessionResponse> 
      <result>1</result> 
     </bar:StartSessionResponse> 
    </soapenv:Body> 
</soapenv:Envelope> 

Le service retourne en fait:

échoue et me donne une erreur!

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <soap:Body> 
     <StartSessionResponse xmlns="www.dummyurl.com/service-v1.0/"> 
      <result xmlns="">1</result> 
     </StartSessionResponse> 
    </soap:Body> 
</soap:Envelope> 

La différence dans la mesure où je peux voir est la mise en place de la

xmlns = "www.dummyurl.com/service-v1.0/ élément, dans le succès xml il est dans l'enveloppe, dans le fichier XML a échoué, il est sur la méthode reponse.

est-il possible que je puisse convaincre CXF d'accepter la réponse? Ou est le service redonnant un résultat anormal?

Répondre

0

Le service donne une mauvaise réponse dans le second cas, en supposant que la première réponse est correcte.

Dans le premier cas "www.dummyurl.com/service-v1.0/" est l'espace de nom de vos éléments - StartSessionResponse, le résultat n'est pas qualifié avec l'espace de noms. Dans le second cas, le StartSessionResponse a le même espace de noms que le premier échantillon, mais le résultat a un espace de nommage différent, en supprimant xmlns = "" car le résultat rendra le xml cohérent.

Questions connexes