[AXIS2] Envoi d'un type complexe dans une requête SOAP
Bonjour,
J'ai créé un web service avec AXIS2, mais j'obtiens une erreur en réponse lors de son appel lorsque j'essaie d'envoyer un type complexe (j'arrive à envoyer un String et à avoir une réponse). Voici l'erreur que j'obtiens
Code:
1 2 3 4
|
<faultstring>
org.apache.axis2.databinding.ADBException: Unexpected subelement passager
</faultstring> |
Je souhaite envoyer un objet complexe "passager" à mon web service, celui-ci doit faire un traitement et me renvoyer un (ou plusieurs) objet(s) complexe(s) "passager".
Voici le fichier wsdl de mon web service :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
<wsdl:definitions name="avionWS" targetNamespace="localhost">
<wsdl:types>
<xsd:schema targetNamespace="localhost">
<xsd:element name="Optimisation">
<xsd:complexType>
<xsd:sequence maxOccurs="1" minOccurs="1">
<xsd:element name="passager" type="tns:Passager"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="OptimisationResponse">
<xsd:complexType>
<xsd:sequence maxOccurs="unbounded" minOccurs="0">
<xsd:element name="passagerReponse" type="tns:Passager"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="Passager">
<xsd:sequence>
<xsd:element name="id" type="xsd:string"/>
<xsd:element name="groupe" type="xsd:string"/>
<xsd:element name="siege" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="OptimisationRequest">
<wsdl:part name="parameters" element="tns:Optimisation">
</wsdl:part>
</wsdl:message>
<wsdl:message name="OptimisationResponse">
<wsdl:part name="parameters" element="tns:OptimisationResponse">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="avionWS">
<wsdl:operation name="Optimisation">
<wsdl:input message="tns:OptimisationRequest"></wsdl:input>
<wsdl:output message="tns:OptimisationResponse"></wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="avionWSSOAP" type="tns:avionWS">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="Optimisation">
<soap:operation soapAction="localhost/Optimisation"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="avionWS">
<wsdl:port name="avionWSSOAP" binding="tns:avionWSSOAP">
<soap:address location="http://127.0.0.1:8180/axis2/services/avionWS"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions> |
Voici la requête SOAP que j'envoie :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<Optimisation xmlns="http://localhost">
<passager>
<id>AAA</id>
<groupe>BBB</groupe>
<siege>CCC</siege>
</passager>
</Optimisation>
</soapenv:Body>
</soapenv:Envelope> |
Et voici la réponse obtenue :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server</faultcode>
<faultstring>
org.apache.axis2.databinding.ADBException: Unexpected subelement passager
</faultstring>
<detail/>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope> |
Je pense que mon problème vient de l'écriture de ma requête (peut-être un problème avec les namespaces). Je ne suis pas un expert en web services et je suis bloqué sur ce problème.
Pouvez-vous m'éclairer?
Merci