Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 15-06-2009 15:23:56

cocodidon
Nouveau membre
Date d'inscription: 15-06-2009
Messages: 8

Web service et AS400

Bonjour a tous. Je suis débutant en WS et PHP et dans le cadre d'un stage en entreprise je dois réaliser un web service entre un serveur web linux et un as400. L'AS400 héberge les informations clients dans sa base de données et le serveur linux est le serveur hébergeant le site web de l'entreprise. C'est sur ce serveur que les clients de la boite se connecteront afin de modifier les informations les concernant dans la base de données de l'AS400.

Alors vu que je ne suis que stagiaire je ne dois réaliser que le code client du WS. La partie serveur est réalisée par un autre membre de l'entreprise.

Concernant le serveur :

La classe nécessaire à été codée et la génération du wsdl correspondant se fait (bien qu'il semblerait qu'il y ait quelques petits problemes...)

Voici le WSDL généré :

Code:

<definitions name="db2services" targetNamespace="http://@IP_AS400:8000/chemin/de/mon/fichier.php">
−
<portType name="db2servicesPort">
−
<operation name="db2services">
<input message="tns:db2servicesRequest"/>
<output message="tns:db2servicesResponse"/>
</operation>
−
<operation name="sayHello">                   // ma fonction test
<input message="tns:sayHelloRequest"/>
<output message="tns:sayHelloResponse"/>
</operation>
−
<operation name="isConnect">
<input message="tns:isConnectRequest"/>
<output message="tns:isConnectResponse"/>
</operation>
−
<operation name="query_multi03">
<input message="tns:query_multi03Request"/>
<output message="tns:query_multi03Response"/>
</operation>
−
<operation name="iconnect">
<input message="tns:iconnectRequest"/>
<output message="tns:iconnectResponse"/>
</operation>
−
<operation name="iwrkactjob">
<input message="tns:iwrkactjobRequest"/>
<output message="tns:iwrkactjobResponse"/>
</operation>
−
<operation name="isystem">
<input message="tns:isystemRequest"/>
<output message="tns:isystemResponse"/>
</operation>
−
<operation name="cmdsystem">
<input message="tns:cmdsystemRequest"/>
<output message="tns:cmdsystemResponse"/>
</operation>
−
<operation name="isysval">
<input message="tns:isysvalRequest"/>
<output message="tns:isysvalResponse"/>
</operation>
−
<operation name="rtvusrprf">
<input message="tns:rtvusrprfRequest"/>
<output message="tns:rtvusrprfResponse"/>
</operation>
−
<operation name="rtvallusrprf">
<input message="tns:rtvallusrprfRequest"/>
<output message="tns:rtvallusrprfResponse"/>
</operation>
−
<operation name="GICORST1">
<input message="tns:GICORST1Request"/>
<output message="tns:GICORST1Response"/>
</operation>
−
<operation name="loadCadeaux">
<input message="tns:loadCadeauxRequest"/>
<output message="tns:loadCadeauxResponse"/>
</operation>
−
<operation name="loadReservations">
<input message="tns:loadReservationsRequest"/>
<output message="tns:loadReservationsResponse"/>
</operation>
−
<operation name="query_points">
<input message="tns:query_pointsRequest"/>
<output message="tns:query_pointsResponse"/>
</operation>
−
<operation name="fid_authAdd">
<input message="tns:fid_authAddRequest"/>
<output message="tns:fid_authAddResponse"/>
</operation>
−
<operation name="fid_authMod">
<input message="tns:fid_authModRequest"/>
<output message="tns:fid_authModResponse"/>
</operation>
−
<operation name="keyED">
<input message="tns:keyEDRequest"/>
<output message="tns:keyEDResponse"/>
</operation>
−
<operation name="encrypt">
<input message="tns:encryptRequest"/>
<output message="tns:encryptResponse"/>
</operation>
−
<operation name="decrypt">
<input message="tns:decryptRequest"/>
<output message="tns:decryptResponse"/>
</operation>
−
<operation name="fid_auth">
<input message="tns:fid_authRequest"/>
<output message="tns:fid_authResponse"/>
</operation>
−
<operation name="add_userAcc">
<input message="tns:add_userAccRequest"/>
<output message="tns:add_userAccResponse"/>
</operation>
−
<operation name="get_usersAcc">
<input message="tns:get_usersAccRequest"/>
<output message="tns:get_usersAccResponse"/>
</operation>
−
<operation name="query_delete">
<input message="tns:query_deleteRequest"/>
<output message="tns:query_deleteResponse"/>
</operation>
−
<operation name="query_update">
<input message="tns:query_updateRequest"/>
<output message="tns:query_updateResponse"/>
</operation>
−
<operation name="getAllItems">
<input message="tns:getAllItemsRequest"/>
<output message="tns:getAllItemsResponse"/>
</operation>
−
<operation name="getItem">
<input message="tns:getItemRequest"/>
<output message="tns:getItemResponse"/>
</operation>
−
<operation name="createItem">
<input message="tns:createItemRequest"/>
<output message="tns:createItemResponse"/>
</operation>
−
<operation name="updateItem">
<input message="tns:updateItemRequest"/>
<output message="tns:updateItemResponse"/>
</operation>
−
<operation name="deleteItem">
<input message="tns:deleteItemRequest"/>
<output message="tns:deleteItemResponse"/>
</operation>
−
<operation name="count">
<input message="tns:countRequest"/>
<output message="tns:countResponse"/>
</operation>
−
<operation name="getItems_paged">
<input message="tns:getItems_pagedRequest"/>
<output message="tns:getItems_pagedResponse"/>
</operation>
</portType>
−
<binding name="db2servicesBinding" type="tns:db2servicesPort">
<soap:binding style="document" transport="http://framework.zend.com"/>
−
<operation name="db2services">
<soap:operation soapAction="http://addressedemonfichierphp#db2services"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="sayHello">                                                                      // ma fonction test
<soap:operation soapAction="http://addressedemonfichierphp#sayHello"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="isConnect">
<soap:operation soapAction="http://addressedemonfichierphp#isConnect"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="query_multi03">
<soap:operation soapAction="http://addressedemonfichierphp#query_multi03"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="iconnect">
<soap:operation soapAction="http://addressedemonfichierphp#iconnect"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="iwrkactjob">
<soap:operation soapAction="http://addressedemonfichierphp#iwrkactjob"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="isystem">
<soap:operation soapAction="http://addressedemonfichierphp#isystem"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="cmdsystem">
<soap:operation soapAction="http://addressedemonfichierphp#cmdsystem"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="isysval">
<soap:operation soapAction="http://addressedemonfichierphp#isysval"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="rtvusrprf">
<soap:operation soapAction="http://addressedemonfichierphp#rtvusrprf"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="rtvallusrprf">
<soap:operation soapAction="http://addressedemonfichierphp#rtvallusrprf"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="GICORST1">
<soap:operation soapAction="http://addressedemonfichierphp#GICORST1"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="loadCadeaux">
<soap:operation soapAction="http://addressedemonfichierphp#loadCadeaux"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="loadReservations">
<soap:operation soapAction="http://addressedemonfichierphp#loadReservations"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="query_points">
<soap:operation soapAction="http://addressedemonfichierphp#query_points"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="fid_authAdd">
<soap:operation soapAction="http://addressedemonfichierphp#fid_authAdd"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="fid_authMod">
<soap:operation soapAction="http://addressedemonfichierphp#fid_authMod"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="keyED">
<soap:operation soapAction="http://addressedemonfichierphp#keyED"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="encrypt">
<soap:operation soapAction="http://addressedemonfichierphp#encrypt"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="decrypt">
<soap:operation soapAction="http://addressedemonfichierphp#decrypt"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="fid_auth">
<soap:operation soapAction="http://addressedemonfichierphp#fid_auth"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="add_userAcc">
<soap:operation soapAction="http://addressedemonfichierphp#add_userAcc"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="get_usersAcc">
<soap:operation soapAction="http://addressedemonfichierphp#get_usersAcc"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="query_delete">
<soap:operation soapAction="http://addressedemonfichierphp#query_delete"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="query_update">
<soap:operation soapAction="http://addressedemonfichierphp#query_update"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="getAllItems">
<soap:operation soapAction="http://addressedemonfichierphp#getAllItems"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="getItem">
<soap:operation soapAction="http://addressedemonfichierphp#getItem"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="createItem">
<soap:operation soapAction="http://addressedemonfichierphp#createItem"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="updateItem">
<soap:operation soapAction="http://addressedemonfichierphp#updateItem"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="deleteItem">
<soap:operation soapAction="http://addressedemonfichierphp#deleteItem"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="count">
<soap:operation soapAction="http://addressedemonfichierphp#count"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
−
<operation name="getItems_paged">
<soap:operation soapAction="http://addressedemonfichierphp#getItems_paged"/>
−
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
−
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
</binding>
−
<service name="db2servicesService">
−
<port name="db2servicesPort" binding="tns:db2servicesBinding">
<soap:address location="http://addressedemonfichierphp"/>
</port>
</service>                                                            
<message name="db2servicesRequest"/>
<message name="sayHelloRequest"/>
−
<message name="sayHelloResponse">
<part name="return" type="xsd:string"/>
</message>
−
<message name="isConnectRequest">
<part name="user" type="xsd:anyType"/>
<part name="pass" type="xsd:anyType"/>
</message>
−
<message name="query_multi03Request">
<part name="requete" type="xsd:anyType"/>
</message>
−
<message name="iconnectRequest">
<part name="user" type="xsd:anyType"/>
<part name="pass" type="xsd:anyType"/>
</message>
<message name="iwrkactjobRequest"/>
−
<message name="isystemRequest">
<part name="cmdsys" type="xsd:anyType"/>
</message>
−
<message name="cmdsystemRequest">
<part name="cmdsys" type="xsd:anyType"/>
</message>
−
<message name="isysvalRequest">
<part name="sysval" type="xsd:anyType"/>
</message>
−
<message name="rtvusrprfRequest">
<part name="user" type="xsd:anyType"/>
</message>
<message name="rtvallusrprfRequest"/>
−
<message name="GICORST1Request">
<part name="stgrp" type="xsd:anyType"/>
<part name="stdos" type="xsd:anyType"/>
<part name="articl" type="xsd:anyType"/>
<part name="client" type="xsd:anyType"/>
<part name="eous" type="xsd:anyType"/>
<part name="code" type="xsd:anyType"/>
<part name="stkcli" type="xsd:anyType"/>
<part name="maga" type="xsd:anyType"/>
<part name="ldaprf" type="xsd:anyType"/>
<part name="taj1" type="xsd:anyType"/>
<part name="taj2" type="xsd:anyType"/>
<part name="taj3" type="xsd:anyType"/>
<part name="taj4" type="xsd:anyType"/>
<part name="taj5" type="xsd:anyType"/>
</message>
<message name="loadCadeauxRequest"/>
−
<message name="loadReservationsRequest">
<part name="numclient" type="xsd:anyType"/>
</message>
−
<message name="query_pointsRequest">
<part name="requete" type="xsd:anyType"/>
</message>
−
<message name="fid_authAddRequest">
<part name="user" type="xsd:anyType"/>
<part name="pass" type="xsd:anyType"/>
<part name="maga" type="xsd:anyType"/>
</message>
−
<message name="fid_authModRequest">
<part name="user" type="xsd:anyType"/>
<part name="pass" type="xsd:anyType"/>
<part name="maga" type="xsd:anyType"/>
</message>
−
<message name="keyEDRequest">
<part name="txt" type="xsd:anyType"/>
</message>
−
<message name="encryptRequest">
<part name="txt" type="xsd:anyType"/>
</message>
−
<message name="decryptRequest">
<part name="txt" type="xsd:anyType"/>
</message>
−
<message name="fid_authRequest">
<part name="user" type="xsd:anyType"/>
<part name="pass" type="xsd:anyType"/>
</message>
−
<message name="add_userAccRequest">
<part name="user" type="xsd:anyType"/>
<part name="objet" type="xsd:anyType"/>
<part name="droit" type="xsd:anyType"/>
</message>
−
<message name="get_usersAccRequest">
<part name="userac" type="xsd:anyType"/>
</message>
−
<message name="query_deleteRequest">
<part name="sqlstr" type="xsd:anyType"/>
</message>
−
<message name="query_updateRequest">
<part name="sqlstr" type="xsd:anyType"/>
</message>
<message name="getAllItemsRequest"/>
−
<message name="getItemRequest">
<part name="itemID" type="xsd:anyType"/>
</message>
−
<message name="createItemRequest">
<part name="item" type="xsd:anyType"/>
</message>
−
<message name="updateItemRequest">
<part name="item" type="xsd:anyType"/>
</message>
−
<message name="deleteItemRequest">
<part name="itemID" type="xsd:anyType"/>
</message>
<message name="countRequest"/>
−
<message name="getItems_pagedRequest">
<part name="startIndex" type="xsd:anyType"/>
<part name="numItems" type="xsd:anyType"/>
</message>
</definitions>

Concernant le client (moi ^_^):

j'essaie d'y accéder via une fonction test, l'AS400 étant en production :

Code:

<?php

require_once ('Zend/Soap/Client.php');



$client = new Zend_Soap_Client('http://addressedemonfichierphp?wsdl');
         
try {
    $resultat = $client->__call(null, 'sayHello');

    }
catch(Exception $e){
    echo $e;
    }
echo $resultat;


// Ajoutes des infos sur l'erreur :
echo "<pre>\n";
// Retourne la requete envoyée au serveur
echo "Request :\n".htmlspecialchars($client ->__getLastRequest()) ."\n";
// Retourne la vraie réponse construite sur le serveur 
//(souvent le message d'erreur produit dans le script du serveur 
//que tu ne voies pas)
echo "Response:\n".htmlspecialchars($client ->__getLastResponse())."\n";
echo "</pre>"; 

?>

Comme vous pouvez le voir j'utilise le ZEND FRAMEWORK version ZendCore-2.5.2 et PHP/5.2.6-2ubuntu4.2 with Suhosin-Patch.

Et quand je teste ma fonction de test je reçois le message :

Code:

Fatal error:  Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: PHP-SOAP doesn't support transport 'http://framework.zend.com' in /home/patrick/test/zend_test/ZendFramework/library/Zend/Soap/Client/Common.php:50
Stack trace:
#0 /home/patrick/test/zend_test/ZendFramework/library/Zend/Soap/Client/Common.php(50): SoapClient->SoapClient('http://@IP_AS400...', Array)
#1 /home/patrick/test/zend_test/ZendFramework/library/Zend/Soap/Client.php(971): Zend_Soap_Client_Common->__construct(Array, 'http://@IP_AS400...', Array)
#2 /home/patrick/test/zend_test/ZendFramework/library/Zend/Soap/Client.php(1052): Zend_Soap_Client->_initSoapClientObject()
#3 [internal function]: Zend_Soap_Client->__call('__getLastReques...', Array)
#4 /home/patrick/test/zend_test/ZendFramework/library/test_client_soap.php(28): Zend_Soap_Client->__getLastRequest()
#5 {main}
  thrown in /home/patrick/test/zend_test/ZendFramework/library/Zend/Soap/Client/Common.php on line 50

JE ne sais pas trop quoi faire pour y remédier sad Quelqu'un pourrait me conseiller plzz...

Hors ligne

 

#2 15-06-2009 16:26:48

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: Web service et AS400

il ne parvient pas à lire ton WSDL

dans un premier temps fait en une copie sur ton serveur php
et charge le directement sans passer par l'url
tu peux alors le modifier pour le réduire au minimum et ne garder que le stric necessaire.

visiblement il y a une erreur dans le XML du WSDL
ce n'est pas simple à trouver.

A+JYT

Hors ligne

 

#3 15-06-2009 16:31:23

cocodidon
Nouveau membre
Date d'inscription: 15-06-2009
Messages: 8

Re: Web service et AS400

ok je vais tester sa.
Merci pour la réponse.

Je vous tiens au courant.

Dernière modification par cocodidon (15-06-2009 20:14:24)

Hors ligne

 

#4 15-06-2009 16:57:29

cocodidon
Nouveau membre
Date d'inscription: 15-06-2009
Messages: 8

Re: Web service et AS400

pffff j'y comprends rien j'ai réduit le wsdl au minimun

Code:

<definitions name="db2services" targetNamespace="http://localhost/test/zend_test/ZendFramework/library/db2services.wsdl">

    <portType name="db2servicesPort">
        <operation name="sayHello">
            <input message="tns:sayHelloRequest"/>
            <output message="tns:sayHelloResponse"/>
        </operation>
    </portType>

    <binding name="db2servicesBinding" type="tns:db2servicesPort">
    <soap:binding style="document" transport="http://framework.zend.com"/>

        <operation name="sayHello">
            <soap:operation soapAction="db2services.wsdl#sayHello"/>

                <input>
                    <soap:body use="literal" namespace="http://framework.zend.com"/>
                </input>

                <output>
                    <soap:body use="literal" namespace="http://framework.zend.com"/>
                </output>
        </operation>

    </binding>

    <service name="db2servicesService">
        <port name="db2servicesPort" binding="tns:db2servicesBinding">
            <soap:address location="db2services.wsdl"/>
        </port>
    </service>


    <message name="sayHelloRequest"/>

    <message name="sayHelloResponse">
        <part name="return" type="xsd:string"/>
    </message>

</definitions>

Je le chage en local (fichier.wsdl) j'appelle toujours ma fonction de test :

Code:

<?php

require_once ('Zend/Soap/Client.php');

$client = new Zend_Soap_Client('db2services.wsdl');

try {
    $resultat = $client->__call('sayHello', null);
    echo $resultat;
    }
catch(Exception $e){
    echo $e;
    }
// Ajoutes des infos sur l'erreur :
echo "<pre>\n";
// Retourne la requete envoyée au serveur
echo "Request :\n".htmlspecialchars($client ->__getLastRequest()) ."\n";
// Retourne la vraie réponse construite sur le serveur 
//(souvent le message d'erreur produit dans le script du serveur 
//que tu ne voies pas)
echo "Response:\n".htmlspecialchars($client ->__getLastResponse())."\n";
echo "</pre>"; 

?>

et la j'obtiens :

Code:

Fatal error:  Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't find <definitions> in '/home/patrick/test/zend_test/ZendFramework/library/db2services.wsdl' in /home/patrick/test/zend_test/ZendFramework/library/Zend/Soap/Client/Common.php:50
Stack trace:
#0 /home/patrick/test/zend_test/ZendFramework/library/Zend/Soap/Client/Common.php(50): SoapClient->SoapClient('db2services.wsd...', Array)
#1 /home/patrick/test/zend_test/ZendFramework/library/Zend/Soap/Client.php(971): Zend_Soap_Client_Common->__construct(Array, 'db2services.wsd...', Array)
#2 /home/patrick/test/zend_test/ZendFramework/library/Zend/Soap/Client.php(1052): Zend_Soap_Client->_initSoapClientObject()
#3 [internal function]: Zend_Soap_Client->__call('__getLastReques...', Array)
#4 /home/patrick/test/zend_test/ZendFramework/library/test_client_soap.php(30): Zend_Soap_Client->__getLastRequest()
#5 {main}
  thrown in /home/patrick/test/zend_test/ZendFramework/library/Zend/Soap/Client/Common.php on line 50

J'y comprends vraiment rien à tout çà...sadsadsad

Hors ligne

 

#5 15-06-2009 16:58:46

cocodidon
Nouveau membre
Date d'inscription: 15-06-2009
Messages: 8

Re: Web service et AS400

Il me dit ne pas trouver <definitions> alors que c'est bien présent dans le fichier....

Hors ligne

 

#6 15-06-2009 17:50:04

cocodidon
Nouveau membre
Date d'inscription: 15-06-2009
Messages: 8

Re: Web service et AS400

Bon en continuant mes investigations, j'ai rajouté certaines infos au xml :

Code:

<definitions name="db2services" targetNamespace="urn:http://localhost/test/zend_test/ZendFramework/library/db2services.wsdl" 
                xmlns:typens="urn:http://localhost/test/zend_test/ZendFramework/library/db2services.wsdl"
                xmlns:xsd="http://w3.org/2001/XMLSchema"
                xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
                xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
                xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                xmlns="http://schemas.xmlsoap.org/wsdl/">

et maintenant j'ai un autre message d'erreur :

Code:

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: PHP-SOAP doesn't support transport 'http://framework.zend.com' in /home/patrick/test/zend_test/ZendFramework/library/Zend/Soap/Client/Common.php:50 
Stack trace: 
#0 /home/patrick/test/zend_test/ZendFramework/library/Zend/Soap/Client/Common.php(50): SoapClient->SoapClient('db2services.wsd...', Array) 
#1 /home/patrick/test/zend_test/ZendFramework/library/Zend/Soap/Client.php(971): Zend_Soap_Client_Common->__construct(Array, 'db2services.wsd...', Array) 
#2 /home/patrick/test/zend_test/ZendFramework/library/Zend/Soap/Client.php(1052): Zend_Soap_Client->_initSoapClientObject() 
#3 /home/patrick/test/zend_test/ZendFramework/library/test_client_soap.php(21): Zend_Soap_Client->__call('sayHello', NULL) 
#4 {main} thrown in /home/patrick/test/zend_test/ZendFramework/library/Zend/Soap/Client/Common.php on line 50

Il s'agirait du mode de transport qui ne serait pas supporté.
Sa veux dire quoi à votre avis??
Quelqu'un aurait-il une idée plzz ??

Dernière modification par cocodidon (15-06-2009 20:16:53)

Hors ligne

 

#7 15-06-2009 20:32:39

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: Web service et AS400

le transport doit

Code:

<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />

A+JYT

Hors ligne

 

#8 16-06-2009 14:49:13

cocodidon
Nouveau membre
Date d'inscription: 15-06-2009
Messages: 8

Re: Web service et AS400

Ok. j'essayerais.

Merci pour les réponses. smile

Dernière modification par cocodidon (16-06-2009 14:51:25)

Hors ligne

 

#9 16-06-2009 16:58:43

cocodidon
Nouveau membre
Date d'inscription: 15-06-2009
Messages: 8

Re: Web service et AS400

Bon faut croire que les WS ne sont pas avec moi sad

Alors vu qu'avec l'AS400 cela s'avère difficile j'ai décidé de faire simple(enfin je pensais que c'était simple).

J'ai créé la classe suivante :

Code:

<?php

require_once ('Zend/Soap/AutoDiscover.php');
require_once ('Zend/Soap/Server.php');

// La classe qui va gérer les requètes SOAP
class HelloWorld {
    
    // Méthode 
    function SayHello() {
        return "Hello world";
    }

}
$autodiscover = new Zend_Soap_AutoDiscover();
$autodiscover -> setClass('HelloWorld');
$autodiscover -> handle();

?>

qui me génère le wsdl suivant :

Code:

<definitions name="HelloWorld" targetNamespace="http://localhost/test/zend_test/ZendFramework/library/test_server_soap.php">
−
<portType name="HelloWorldPort">
−
<operation name="SayHello">
<input message="tns:SayHelloRequest"/>
<output message="tns:SayHelloResponse"/>
</operation>
</portType>
−
<binding name="HelloWorldBinding" type="tns:HelloWorldPort">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
−
<operation name="SayHello">
<soap:operation soapAction="http://localhost/test/zend_test/ZendFramework/library/test_server_soap.php#SayHello"/>
−
<input>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
−
<output>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
−
<service name="HelloWorldService">
−
<port name="HelloWorldPort" binding="tns:HelloWorldBinding">
<soap:address location="http://localhost/test/zend_test/ZendFramework/library/test_server_soap.php"/>
</port>
</service>
<message name="SayHelloRequest"/>
</definitions>

et j'essaie de l'appeler ainsi :

Code:

<?php

ini_set('soap.wsdl_cache_enabled', 0);

require_once ('Zend/Soap/Client.php');
require_once ('Zend/Soap/Client/Exception.php');


$parametres = array('trace'      => 1,
            'soap_version'    => SOAP_1_2
           );


try {
     $client = new Zend_Soap_Client('http://localhost/test/zend_test/ZendFramework/library/test_server_soap.php?wsdl');
     $resultat = $client->__call('HelloWorld', null);
     echo $resultat;
     }
catch(Zend_Exception $e)
     {
    echo "<i><u>Message d'erreur retourn&eacute;:</u></i> " . $e->getMessage();
     }

?>

cette fois je travaille en local. Et quand j'invoque ma méthode j'ai le message suivant :

Code:

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Missing <message> with name 'tns:SayHelloResponse' in /home/patrick/test/zend_test/ZendFramework/library/Zend/Soap/Client/Common.php:50 
Stack trace: 
#0 /home/patrick/test/zend_test/ZendFramework/library/Zend/Soap/Client/Common.php(50): SoapClient->SoapClient('http://localhos...', Array) 
#1 /home/patrick/test/zend_test/ZendFramework/library/Zend/Soap/Client.php(971): Zend_Soap_Client_Common->__construct(Array, 'http://localhos...', Array) 
#2 /home/patrick/test/zend_test/ZendFramework/library/Zend/Soap/Client.php(1052): Zend_Soap_Client->_initSoapClientObject() 
#3 /home/patrick/test/zend_test/ZendFramework/library/test_client_soap.php(16): Zend_Soap_Client->__call('HelloWorld', NULL) 
#4 {main}
 thrown in /home/patrick/test/zend_test/ZendFramework/library/Zend/Soap/Client/Common.php on line 50

Quelqu'un saurait ce que cela signifie? J'y comprend rien.

Il me dit ne pas trouver une information que je distingue tres bien. Comment le lui faire prendre en compte?????

Il y aurait une erreur quelque part mais je ne la trouve paaaaaaaaaaaas..................................


Merci pour votre aide

Dernière modification par cocodidon (16-06-2009 17:22:16)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages