Partage
  • Partager sur Facebook
  • Partager sur Twitter

Web services SOAP, input sans préfix xsd

    24 septembre 2015 à 12:09:35

    Bonjour,

    Je développe actuellement des web services et je rencontre un problème de format de mes enveloppes SOAP.

    En effet, le WSDL utilisé me donne comme enveloppe type des éléments préfixés :

    <soap:header>
        <xsd:deviceId>?</xsd:deviceId>
        <xsd:language>?</xsd:language>
    ...
    

    Si j'utilise cette enveloppe, mes WS fonctionnent correctement.

    Le problème est que j'aimerais recevoir des enveloppes sous la forme :

    <header>
      <deviceId>idtest</deviceId>
      <language>fr</language>
    ...

    Si j'envoie cette enveloppe, je reçois cette erreur :

    org.apache.axis2.databinding.ADBException: Unexpected subelement {monUri}deviceId

    De plus, les enveloppes de retour sont renvoyées sans les préfixes, alors que j'aimerais qu'elles les aient (oui, tout est inversé).

    Pour informations, j'ai mon fichier WSDL à partir duquel je génère mes fichiers sources, grâce à la fonctionnalité "Generate Java Bean Skeleton" proposé sur les fichiers WSDL.

    Le début du fichier WSDL est celui-ci :

    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions targetNamespace="http://soap.monUri.fr" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:ns="http://soap.monUri.fr" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:ax21="http://soap.monUri.fr/xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/">
    <wsdl:documentation>
    		Please Type your service description here
    	</wsdl:documentation>
      <wsdl:types>
        <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://soap.monUri.fr" xmlns:ax22="http://soap.monUri.fr/xsd">
                <xs:import namespace="http://soap.monUri.fr/xsd"/>
                <xs:element name="HelloWorld">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element minOccurs="0" name="header" nillable="true" type="ax21:TWS_Header"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="HelloWorldResponse">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element minOccurs="0" name="return" nillable="true" type="ax21:TWS_HelloWorldResponse"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>

    Le binding si cela peut être utile :

    <wsdl:binding name="InterfaceWSSoap11Binding" type="ns:InterfaceWSPortType">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    	<wsdl:operation name="HelloWorld">
          <soap:operation soapAction="urn:HelloWorld" style="document"/>
          <wsdl:input>
            <soap:body use="literal"/>
          </wsdl:input>
          <wsdl:output>
            <soap:body use="literal"/>
          </wsdl:output>
        </wsdl:operation>

    Qu'est-ce que je dois modifier pour obtenir le résultat attendu ? Le fichier WSDL ? Les fichiers générés automatiquement ?

    Merci d'avance pour votre précieuse aide !

    • Partager sur Facebook
    • Partager sur Twitter

    Web services SOAP, input sans préfix xsd

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown