IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XML/XSL et SOAP Discussion :

Appel d'un web service en php VersionMismatch, Wrong Version


Sujet :

XML/XSL et SOAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 114
    Par défaut Appel d'un web service en php VersionMismatch, Wrong Version
    Bonjour à tous,

    Voilà après deux jours de recherche intense , je fais appelle à vous.
    J'ai trouvé pas mal d'info sur mon errreur mais rien qui puisse la régler.

    Donc je dois appeler un web service en php, lorsque j'envoie ma requête, j'ai cette erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Fatal error: SOAP Fault: (faultcode: VersionMismatch, faultstring: Wrong Version) in XXX/XXXX/XXXXX/testWS.php on line 50
    La ligne 50 correspond à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
    WSDL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <xsd:element name="memberChoiceRequest">
     
            <xsd:complexType>
    			<xsd:sequence>
    				<xsd:element name="federal" minOccurs="1" maxOccurs="1">
    					<xsd:simpleType>
    						<xsd:restriction base="xsd:string">
    							<xsd:length value="7"></xsd:length>
    						</xsd:restriction>
    					</xsd:simpleType>
    				</xsd:element>
    				<xsd:element name="birthdate" minOccurs="0" maxOccurs="1">
    					<xsd:simpleType>
    						<xsd:restriction base="xsd:string">
    							<xsd:length value="8"></xsd:length>
    						</xsd:restriction>
    					</xsd:simpleType>
    				</xsd:element>
    				<xsd:element name="controlDate" minOccurs="0" maxOccurs="1">
    					<xsd:simpleType>
    						<xsd:restriction base="xsd:string">
    							<xsd:length value="8"></xsd:length>
    						</xsd:restriction>
    					</xsd:simpleType>
    				</xsd:element>
    				<xsd:element name="rl" minOccurs="1" maxOccurs="1">
    					<xsd:simpleType>
    						<xsd:restriction base="xsd:string">
    							<xsd:enumeration value="F"></xsd:enumeration>
    							<xsd:enumeration value="N"></xsd:enumeration>
    						</xsd:restriction>
    					</xsd:simpleType>
    				</xsd:element>
    			</xsd:sequence>
    		</xsd:complexType>
        </xsd:element>
    	<xsd:element name="memberChoiceResponse">
     
            <xsd:complexType>
     
    			<xsd:sequence>
    				<xsd:element name="returnmessage" type="schemamutas:returnmessage" maxOccurs="1" minOccurs="1"></xsd:element>
    				<xsd:element name="memberList" type="schemamutas:member" maxOccurs="unbounded" minOccurs="0"></xsd:element>
    			</xsd:sequence>
    		</xsd:complexType>
        </xsd:element>
    Et voici le code php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    // Nouveau Client SOAP
    	try {
    	    // Nouvelle instance de la classe soapClient
    	 	$client = new SoapClient(
    				$wsdl, 		
    				array(
    					'location' 			=> $wsdl,
    					'cache_wsdl' 		=> WSDL_CACHE_NONE,
    					'user_agent'		=> __FUNCTION__,
    					'trace'				=> 1,													//The trace option enables tracing of request so faults can be backtraced
    						'exceptions' 		=> 1, 												//The exceptions option is a boolean value defining whether soap errors throw exceptions of type SoapFault.
    					'allow_self_signed' => 1,										// For https
    					'proxy_host' 		=> $proxy,
    					'proxy_login'    	=> $user_proxy,
    					'proxy_password' 	=> $pass_proxy,
    					'proxy_port' 	=> $port_proxy,
    					'soap_version'=>'soap_1_2'     //j'ai rajouté ceci en pensant que c'était là l'erreur
    				)		
    			);
     
    	$method = 'memberChoice';
    	$param = array ('federal' => "20120708", 'birthdate'=> "2909373", 'controlDate' => "20120802", 'rl'=>"N"); // memberChoice method
     
    	 // $method = 'insurabilityValid';
    	 //$param = array ('federal' => $federal, 'birthdateTwin'=> '201207080', 'nationalNumber'=>'02070832154', 'titPach'=>'P' , 'controlDate' => '20120801', 'rl'=>'N'); // isInsurabiltyValid method
     
     
    	// Appel de la méthode  du service web
    	 $oReturn =  $client -> __soapCall($method, $param);
    	} catch (SoapFault $fault) {
    	    	trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
    	}
    Quelq'un aurai une idée ?

    Merci d'avance !

  2. #2
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    [1]
    'soap_version'=>'soap_1_2' //j'ai rajouté ceci en pensant que c'était là l'erreur
    Si c'était la cause du problème, ça s'est fait comme ça (sans guillemets et tout en majuscule).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'soap_version'=>SOAP_1_2
    [2] Les données federal et birthdate ne sont pas respectées aux définitions attendues d'après le schema.
    $param = array ('federal' => "20120708", 'birthdate'=> "2909373", 'controlDate' => "20120802", 'rl'=>"N"); // memberChoice method
    [2.1] federal
    <xsd:element name="federal" minOccurs="1" maxOccurs="1">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:length value="7"></xsd:length>
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    C'est-à-dire, federal doit avoir une longeur 7. Il faut changer soi le schema, soit la donnée correspondante.

    [2.2] birthdate
    <xsd:element name="birthdate" minOccurs="0" maxOccurs="1">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:length value="8"></xsd:length>
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    Le même genre d'erreur.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 114
    Par défaut
    Merci tsuji pour ta réponse.

    J'ai toujours la même erreur, en laissant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     'soap_version'=>SOAP_1_2 ou 'soap_version'=>SOAP_1_1
    Lorsque je fais un echo de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $client->__getLastRequest()
    J'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://mutas101.dto.beans.business.ws.fmsb.be">
    <SOAP-ENV:Body>
    <ns1:memberChoiceRequest>
    <ns1:federal>2909373</ns1:federal>
    <ns1:birthdate>20120708</ns1:birthdate>
    <ns1:controlDate>20120803</ns1:controlDate>
    <ns1:rl>N</ns1:rl>
    </ns1:memberChoiceRequest>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    Lorsque je fais un echo de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $client->__getLastResponse()
    J'ai cette réponse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?xml version="1.0" encoding="UTF-8" standalone="no"?> <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="MutasWebservice_1_0_1" xmlns:impl="http://www.fmsb.be/ws/MutasWebservice_1_0_1" targetNamespace="http://www.fmsb.be/ws/MutasWebservice_1_0_1" xmlns:schemamutas="http://mutas101.dto.beans.business.ws.fmsb.be"> <wsdl:types> <xsd:schema elementFormDefault="qualified" targetNamespace="http://schema.mutas.ws.impl.services.fmsb.be"> <xsd:import namespace="http://mutas101.dto.beans.business.ws.fmsb.be" schemaLocation="schema/fmsb_mutas_schema_101.xsd" /> </xsd:schema> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:import namespace="http://mutas101.dto.beans.business.ws.fmsb.be" schemaLocation="schema/fmsb_mutas_schema_101.xsd"> </xsd:import></xsd:schema></wsdl:types> <wsdl:message name="memberChoiceRequest"> <wsdl:part name="memberChoiceRequest" element="schemamutas:memberChoiceRequest"></wsdl:part> </wsdl:message> <wsdl:message name="memberChoiceResponse"> <wsdl:part name="memberChoiceResponse" element="schemamutas:memberChoiceResponse"></wsdl:part> </wsdl:message> <wsdl:message name="insurabilityValidRequest"> <wsdl:part name="insurabilityValidRequest" element="schemamutas:insurabilityValidRequest"></wsdl:part> </wsdl:message> <wsdl:message name="insurabilityValidResponse"> <wsdl:part name="insurabilityValidResponse" element="schemamutas:insurabilityValidResponse"></wsdl:part> </wsdl:message> <wsdl:portType name="MutasWebservice"> <wsdl:operation name="memberChoice"> <wsdl:input message="impl:memberChoiceRequest"></wsdl:input> <wsdl:output message="impl:memberChoiceResponse"></wsdl:output> </wsdl:operation> <wsdl:operation name="insurabilityValid"> <wsdl:input message="impl:insurabilityValidRequest"></wsdl:input> <wsdl:output message="impl:insurabilityValidResponse"></wsdl:output> </wsdl:operation> </wsdl:portType> <wsdl:binding name="MutasWebserviceSoapBinding" type="impl:MutasWebservice"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="memberChoice"> <soap:operation soapAction="http://www.fmsb.be/ws/MutasWebservice_1_0_1/memberChoice" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="insurabilityValid"> <soap:operation soapAction="http://www.fmsb.be/ws/MutasWebservice_1_0_1/insurabilityValid" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="MutasWebservice_1_0_1"> <wsdl:port name="MutasWebservice_1_0_1" binding="impl:MutasWebserviceSoapBinding"> <soap:address location="https://www2.fmsb.be/mutas/services/MutasWebservice_1_0_1" /> </wsdl:port> </wsdl:service> </wsdl:definitions>
    Qui est en fait le WSDL, c'est normal ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 114
    Par défaut
    je fais des test et si je fais:
    1-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $oReturn= $client->$method($param); 
    echo $oReturn;
    j'ai cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SoapFault exception: [VersionMismatch] Wrong Version in /var/www/temp/Dev Karim/fsmb/testWS.php:49 Stack trace: #0 /var/www/temp/Dev Karim/fsmb/testWS.php(49): SoapClient->__call('memberChoice', Array) #1 /var/www/temp/Dev Karim/fsmb/testWS.php(49): SoapClient->memberChoice(Array) #2 {main}
    2-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $oReturn= $client->$method(array($param)); //array ! Ligne 49
    echo $oReturn;
    Erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: SOAP-ERROR: Encoding: object has no 'federal' property in /var/www/temp/Dev Karim/fsmb/testWS.php on line 49
    3-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $oReturn =  $client -> __soapCall($method, array($param)); 
    echo $oReturn;
    Erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SoapFault exception: [VersionMismatch] Wrong Version in /var/www/temp/Dev Karim/fsmb/testWS.php:52
    Stack trace:
    #0 /var/www/temp/Dev Karim/fsmb/testWS.php(52): SoapClient->__soapCall('memberChoice', Array)
    #1 {main}

  5. #5
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Je ne pense pas les issues que j'ai soulevées sont de nature négociable! Les restes, je vais les regarder plus tard.

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 114
    Par défaut
    Citation Envoyé par tsuji Voir le message
    Je ne pense pas les issues que j'ai soulevées sont de nature négociable! Les restes, je vais les regarder plus tard.
    Ok merci !

    Petite question

    Quand j'affiche les headers (Request et Response) le header response a comme content-type: text/plain, le problème ne viendrait pas de là ?


    REQUEST HEADERS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    POST /XXXXX/XXXXXX/MutasWebservice_1_0_1.wsdl HTTP/1.1
    Host: www2.XXXXX.be
    Connection: Keep-Alive
    Content-Type: text/xml; charset=utf-8
    SOAPAction: "XXXXXX/XXXXXX/memberChoice"
    Content-Length: 412
    RESPONSE HEADERS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    HTTP/1.1 200 OK
    Date: Fri, 03 Aug 2012 11:08:29 GMT
    Server: Apache/2.2.3 (CentOS)
    Accept-Ranges: bytes
    ETag: W/"3130-1342706222000"
    Last-Modified: Thu, 19 Jul 2012 13:57:02 GMT
    Content-Type: text/plain; charset=UTF-8
    Content-Length: 3130
    Connection: Keep-Alive

  7. #7
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    [3]
    Qui est en fait le WSDL, c'est normal ?
    Les deux __getLastRequest() semblent plutôt normales, pourquoi s'en doutez?! Il me semble la requête devrait être plutôt bonne que mauvaise. Mais vous n'avez jamais changé les valeurs de federal et birthdate pour être conformant au schema: pourquoi? Elles sont invalables. La réponse HTTP semble encourageante déjà...

    Essayez quelque chose comme ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //federal 7 caractères, birthdate 8 caractères corrigés
    //mettez les données plus réalistes
    $param = array ('federal' => "2012070", 'birthdate'=> "29093731", 'controlDate' => "20120802", 'rl'=>"N");
    $oReturn= $client->memberChoice($param);
    Qu'est-ce que ça donne?

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 114
    Par défaut
    Citation Envoyé par tsuji Voir le message
    [3]

    Les deux __getLastRequest() semblent plutôt normales, pourquoi s'en doutez?! Il me semble la requête devrait être plutôt bonne que mauvaise. Mais vous n'avez jamais changé les valeurs de federal et birthdate pour être conformant au schema: pourquoi? Elles sont invalables. La réponse HTTP semble encourageante déjà...

    Essayez quelque chose comme ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //federal 7 caractères, birthdate 8 caractères corrigés
    //mettez les données plus réalistes
    $param = array ('federal' => "2012070", 'birthdate'=> "29093731", 'controlDate' => "20120802", 'rl'=>"N");
    $oReturn= $client->memberChoice($param);
    Qu'est-ce que ça donne?
    Voilà le print de ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    SoapFault Object
    (
        [message:protected] => Wrong Version
        [string:Exception:private] => 
        [code:protected] => 0
        [file:protected] => /var/www/temp/Dev Karim/fsmb/testWS.php
        [line:protected] => 48
        [trace:Exception:private] => Array
            (
                [0] => Array
                    (
                        [file] => /var/www/temp/Dev Karim/fsmb/testWS.php
                        [line] => 48
                        [function] => __call
                        [class] => SoapClient
                        [type] => ->
                        [args] => Array
                            (
                                [0] => memberChoice
                                [1] => Array
                                    (
                                        [0] => Array
                                            (
                                                [federal] => 2012070
                                                [birthdate] => 29093731
                                                [controlDate] => 20120802
                                                [rl] => N
                                            )
     
                                    )
     
                            )
     
                    )
     
                [1] => Array
                    (
                        [file] => /var/www/temp/Dev Karim/fsmb/testWS.php
                        [line] => 48
                        [function] => memberChoice
                        [class] => SoapClient
                        [type] => ->
                        [args] => Array
                            (
                                [0] => Array
                                    (
                                        [federal] => 2012070
                                        [birthdate] => 29093731
                                        [controlDate] => 20120802
                                        [rl] => N
                                    )
     
                            )
     
                    )
     
            )
     
        [previous:Exception:private] => 
        [faultstring] => Wrong Version
        [faultcode] => VersionMismatch
        [faultcodens] => http://schemas.xmlsoap.org/soap/envelope/
    )

  9. #9
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Et la version alors? Avez-vous la fixé? Qu'est-ce que ça donne encore?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $client->_soap_version;

  10. #10
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 114
    Par défaut
    Citation Envoyé par tsuji Voir le message
    Et la version alors? Avez-vous la fixé? Qu'est-ce que ça donne encore?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $client->_soap_version;
    Bonjour,

    Cela affiche 1

  11. #11
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Il faut savoir, non?, SOAP_1_1 est int(1) qui est le défaut; et SOAP_1_2 est int(2). Donc, vous n'avez pas change ça?
    [1]
    Citation:
    'soap_version'=>'soap_1_2' //j'ai rajouté ceci en pensant que c'était là l'erreur

    Si c'était la cause du problème, ça s'est fait comme ça (sans guillemets et tout en majuscule).

    Code :Sélectionner tout - Visualiser dans une fenêtre à part
    'soap_version'=>SOAP_1_2
    Est-ce que ce n'etait pas clair assez?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
            // Nouvelle instance de la classe soapClient
            $client = new SoapClient(
                $wsdl, 		
                array(
                    'location' => $wsdl,
                    'cache_wsdl' => WSDL_CACHE_NONE,
                    'user_agent' => __FUNCTION__,
                    'trace' => 1
                    'exceptions' => 1,
                    'allow_self_signed' => 1,
                    'proxy_host' => $proxy,
                    'proxy_login' => $user_proxy,
                    'proxy_password' => $pass_proxy,
                    'proxy_port' => $port_proxy,
                    'soap_version'=>SOAP_1_2
                )		
            );

  12. #12
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 114
    Par défaut
    Si c'est clair mais j'avais déjà fait ce test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    try {
    	     
            // Nouvelle instance de la classe soapClient
            $client = new SoapClient(
                $wsdl, 		
                array(
                    'location' => $wsdl,
                    'cache_wsdl' => WSDL_CACHE_NONE,
                    'user_agent' => __FUNCTION__,
                    'trace' => 1,
                    'exceptions' => 1,
                    'allow_self_signed' => 1,
                    'proxy_host' => $proxy,
                    'proxy_login' => $user_proxy,
                    'proxy_password' => $pass_proxy,
                    'proxy_port' => $port_proxy,
                    'soap_version'=>SOAP_1_2
                )		
            );
    	$method = 'memberChoice';
    	$param = array ('federal' => "2909373", 'birthdate'=> "20020708", 'controlDate' => "20120806", 'rl'=>"N");  //ce sont de vrai données
    
    	
    	// Appel de la méthode  du service web
    	$oReturn= $client->memberChoice($param);
    } catch (SoapFault $fault) {
    	    //trigger_error("SOAP Fault: (faultcode: {$fault->faultcode},  faultstring: {$fault->faultstring})", E_USER_ERROR);
    	    print_r($fault);
    }
    Voilà ce que cela donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    SoapFault Object
    (
        [message:protected] => Wrong Version
        [string:Exception:private] => 
        [code:protected] => 0
        [file:protected] => /var/www/temp/Dev Karim/fsmb/testWS.php
        [line:protected] => 50
        [trace:Exception:private] => Array
            (
                [0] => Array
                    (
                        [file] => /var/www/temp/Dev Karim/fsmb/testWS.php
                        [line] => 50
                        [function] => __call
                        [class] => SoapClient
                        [type] => ->
                        [args] => Array
                            (
                                [0] => memberChoice
                                [1] => Array
                                    (
                                        [0] => Array
                                            (
                                                [federal] => 2012070
                                                [birthdate] => 29093731
                                                [controlDate] => 20120802
                                                [rl] => N
                                            )
     
                                    )
     
                            )
     
                    )
     
                [1] => Array
                    (
                        [file] => /var/www/temp/Dev Karim/fsmb/testWS.php
                        [line] => 50
                        [function] => memberChoice
                        [class] => SoapClient
                        [type] => ->
                        [args] => Array
                            (
                                [0] => Array
                                    (
                                        [federal] => 2012070
                                        [birthdate] => 29093731
                                        [controlDate] => 20120802
                                        [rl] => N
                                    )
     
                            )
     
                    )
     
            )
     
        [previous:Exception:private] => 
        [faultstring] => Wrong Version
        [faultcode] => VersionMismatch
        [faultcodens] => http://www.w3.org/2003/05/soap-envelope
    )

  13. #13
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Je me demande si c'est comme ça, comment peut-il que "Cela affiche 1" avec $client->_soap_version?

  14. #14
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 114
    Par défaut
    Citation Envoyé par tsuji Voir le message
    Je me demande si c'est comme ça, comment peut-il que "Cela affiche 1" avec $client->_soap_version?
    Pourtant c'est bien ce qu'il affiche.
    Pour: 'soap_version'=>SOAP_1_1, il m'affiche 1
    Pour: 'soap_version'=>SOAP_1_2, il m'affiche 2.

    je suis en PHP Version 5.3.6

  15. #15
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 114
    Par défaut
    Citation Envoyé par tsuji Voir le message
    Je me demande si c'est comme ça, comment peut-il que "Cela affiche 1" avec $client->_soap_version?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SoapClient Object
    (
        [location] => https://www2.xxxxxx.be/xxxx/xxx/MutasWebservice_1_0_1.wsdl
        [_proxy_host] => xxx.xxx.x.x
        [_proxy_port] => xxxx
        [_proxy_login] => xxxxxx
        [_proxy_password] => xxxxxx
        [trace] => 1
        [_user_agent] => 
        [_soap_version] => 1 //C'est normal il renvoie un Int
        [sdl] => Resource id #5
    )

  16. #16
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Bien entendu: mais vous faites bien ça (me faut-il re-lister complètement pourque je sois exprimé sans ambiguité quoique je trouve ça bien fatiguant...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
            // Nouvelle instance de la classe soapClient
            $client = new SoapClient(
                $wsdl, 		
                array(
                    'location' => $wsdl,
                    'cache_wsdl' => WSDL_CACHE_NONE,
                    'user_agent' => __FUNCTION__,
                    'trace' => 1,
                    'exceptions' => 1,
                    'allow_self_signed' => 1,
                    'proxy_host' => $proxy,
                    'proxy_login' => $user_proxy,
                    'proxy_password' => $pass_proxy,
                    'proxy_port' => $port_proxy,
                    'soap_version'=>SOAP_1_2
                )		
            );
            echo $client->_soap_version;    // cela affiche 1?
    sans envoyer quoi que ce soit; tout côté client.

  17. #17
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 114
    Par défaut
    Citation Envoyé par tsuji Voir le message
    Bien entendu: mais vous faites bien ça (me faut-il re-lister complètement pourque je sois exprimé sans ambiguité quoique je trouve ça bien fatiguant...)

    sans envoyer quoi que ce soit; tout côté client.
    Excuse moi, je ne comprends pas très bien ta remarque....

    Je cherche aussi de mon côté donc, je ne remets pas tous le code à chaque fois (sorry)
    Donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     $client = new SoapClient(
                $wsdl, 		
                array(
                    'location' => $wsdl,
                    'cache_wsdl' => WSDL_CACHE_NONE,
                    'user_agent' => __FUNCTION__,
                    'trace' => 1,
                    'exceptions' => 1,
                    'allow_self_signed' => 1,
                    'proxy_host' => $proxy,
                    'proxy_login' => $user_proxy,
                    'proxy_password' => $pass_proxy,
                    'proxy_port' => $port_proxy,
                    'soap_version'=>SOAP_1_1
                )		
            );
            echo $client->_soap_version;    // cela affiche 1
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     $client = new SoapClient(
                $wsdl, 		
                array(
                    'location' => $wsdl,
                    'cache_wsdl' => WSDL_CACHE_NONE,
                    'user_agent' => __FUNCTION__,
                    'trace' => 1,
                    'exceptions' => 1,
                    'allow_self_signed' => 1,
                    'proxy_host' => $proxy,
                    'proxy_login' => $user_proxy,
                    'proxy_password' => $pass_proxy,
                    'proxy_port' => $port_proxy,
                    'soap_version'=>SOAP_1_2
                )		
            );
            echo $client->_soap_version;    // cela affiche 2
    Que je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'soap_version'=>SOAP_1_1
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'soap_version'=>SOAP_1_2
    Et que j'appelle le web services
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $param = array ('federal' => "2909373", 'birthdate'=> "20020708", 'controlDate' => "20120806", 'rl'=>"N");
    
    $oReturn= $client->memberChoice($param); //Ligne 48
    print_r($oReturn);
    J'ai toujours la même erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    SoapFault Object
    (
        [message:protected] => Wrong Version
        [string:Exception:private] => 
        [code:protected] => 0
        [file:protected] => /var/www/temp/Dev Karim/fsmb/testWS.php
        [line:protected] => 48
        [trace:Exception:private] => Array
            (
                [0] => Array
                    (
                        [file] => /var/www/temp/Dev Karim/fsmb/testWS.php
                        [line] => 48
                        [function] => __call
                        [class] => SoapClient
                        [type] => ->
                        [args] => Array
                            (
                                [0] => memberChoice
                                [1] => Array
                                    (
                                        [0] => Array
                                            (
                                                [federal] => 2909373
                                                [birthdate] => 20020708
                                                [controlDate] => 20120806
                                                [rl] => N
                                            )
     
                                    )
     
                            )
     
                    )
     
                [1] => Array
                    (
                        [file] => /var/www/temp/Dev Karim/fsmb/testWS.php
                        [line] => 48
                        [function] => memberChoice
                        [class] => SoapClient
                        [type] => ->
                        [args] => Array
                            (
                                [0] => Array
                                    (
                                        [federal] => 2909373
                                        [birthdate] => 20020708
                                        [controlDate] => 20120806
                                        [rl] => N
                                    )
     
                            )
     
                    )
     
            )
     
        [previous:Exception:private] => 
        [faultstring] => Wrong Version
        [faultcode] => VersionMismatch
        [faultcodens] => http://schemas.xmlsoap.org/soap/envelope/
    )

  18. #18
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Faut-il être clair étape par étape? Vous ne répondez pas une réduction du problème. Je n'arriverais donc pas à comprendre. Merci pour l'effort et salut!

  19. #19
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 114
    Par défaut
    Citation Envoyé par tsuji Voir le message
    Faut-il être clair étape par étape? Vous ne répondez pas une réduction du problème. Je n'arriverais donc pas à comprendre. Merci pour l'effort et salut!
    Merci pour ton aide.

    Quelqu'un a une autre piste ?

  20. #20
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 114
    Par défaut
    J'ai reçu une réponse du fournisseur du web service.
    Avec mon ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
            $client = new SoapClient(
                $wsdl, 		
                array(
                    'location' => $wsdl,
                    "uri"=> "http://schemas.xmlsoap.org/wsdl/soap12/", 
                      'soap_version'=>SOAP_1_2,
                    'cache_wsdl' => WSDL_CACHE_NONE,
                    'trace' => 1,
                    'exceptions '=>0,
                    'proxy_host' => $proxy,
                    'proxy_login' => $user_proxy,
                    'proxy_password' => $pass_proxy,
                    'proxy_port' => $port_proxy
                )		
            );
    	 	 $method = 'memberChoice';
    		$param = array ('federal' => "2909373", 'birthdate'=> "20020708", 'controlDate' => "20120807", 'rl'=>"N");  //memberChoice method
    $client->$method($param);
    Je génere cette requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="UTF-8"?>
    <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://mutas101.xxxx.business.ws.xxx.be">
       <env:Body>
          <ns1:memberChoiceRequest>
             <ns1:federal>2909373</ns1:federal>
             <ns1:birthdate>20020708</ns1:birthdate>
             <ns1:controlDate>20120807</ns1:controlDate>
             <ns1:rl>N</ns1:rl>
          </ns1:memberChoiceRequest>
       </env:Body>
    </env:Envelope>
    Et il me dit qu'il attende ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="UTF-8"?>
    <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" >
       <env:Body>
          <memberChoiceRequest xmlns="http://mutas101.xxxx.business.ws.xxx.be">
             <federal>2909373</federal>
             <birthdate>20020708</birthdate>
             <controlDate>20120807</controlDate>
             <rl>N</rl>
          </memberChoiceRequest>
       </env:Body>
    </env:Envelope>
    Quelqu'un sait qu'est ce que je dois faire pour modifier ma requête.

    Merci,

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Comment appeler un web service avec PHP en https
    Par teken-new dans le forum Langage
    Réponses: 1
    Dernier message: 22/06/2011, 10h10
  2. Problème web Service: class file has wrong version!
    Par mumu27 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 15/08/2010, 10h35
  3. Appel d'un Web Services dans php
    Par ggjedi dans le forum Services Web
    Réponses: 1
    Dernier message: 05/02/2008, 10h32
  4. web service et php
    Par mnr_nfo dans le forum Langage
    Réponses: 5
    Dernier message: 05/04/2007, 08h59
  5. Web Services et PHP
    Par osopardo dans le forum Langage
    Réponses: 1
    Dernier message: 03/07/2006, 12h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo