Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 15-05-2014 09:47:11

jb66
Nouveau membre
Date d'inscription: 08-08-2013
Messages: 3

soap et zf2

Bonjour,

je souhaiterai mettre en place un webservice SOAP pour une application zend.
Pour test:
Dans application, j'ai un controller pour le soap SOAPcontroller qui contient deux actions SoapAction et CreateWSDLAction:

Code:

<?php



namespace Application\Controller;


ini_set("soap.wsdl_cache_enabled", "0");
use Zend\Mvc\Controller\AbstractActionController;
use Zend\Soap\AutoDiscover as AutoDiscover;
use Zend\Soap\Server as SoapServer;
use Service\user;


require_once "/module/Application/src/Application/Service/user.php";



class SoapController extends AbstractActionController
{
    
    private $_WSDL_URI = "http://localhost/webservices/application/createWSDL";
    private $_WSDL_URIServer = "http://localhost/webservices/application/soap";

    
    public function soapAction()
    {
        
        ini_set('display_errors', 1);
        ini_set("soap.wsdl_cache_enabled", 0);
         
        $options = array();
    
        

        $wsdl = $this->_WSDL_URI;
    
        $server = new SoapServer($wsdl,$options);
        $server->setClass(new user());
        $server->handle();
        
          exit;
    
        
    }    
    
    /**
     * Create the WSDL file for display
     *
     * @param none
     * @return string The wsdl xml
     */
    public function  createWSDLAction()
    {
        
        
        ini_set("soap.wsdl_cache_enabled", 0);
        
        $autodiscover = new \Zend\Soap\AutoDiscover();
        $autodiscover->setClass(new user())
        ->setUri($this->_WSDL_URIServer)
        ->setServiceName('Soap');
        $wsdl = $autodiscover->generate();
        echo $wsdl->toXml();
        
        
        exit;
        
    }

}

la classe user.php est la suivante:

Code:

<?php
namespace Service;

class user
{
    public function method1($inputParam) {
        $result="";
        
        return $result;
    }
    
    public function method2($inputParam1, $inputParam2) {

    }
}

?>

je génère bien le WSDL avec http://localhost/webservices/application/createWSDL

Code:

<?xml version="1.0" encoding="UTF-8"?>

-<definitions name="Soap" targetNamespace="http://localhost/webservices/application/soap" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://localhost/webservices/application/soap" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/">


-<types>

<xsd:schema targetNamespace="http://localhost/webservices/application/soap"/>

</types>


-<portType name="SoapPort">


-<operation name="method1">

<documentation>/***/</documentation>

<input message="tns:method1In"/>

</operation>


-<operation name="method2">

<documentation>/***/</documentation>

<input message="tns:method2In"/>

</operation>

</portType>


-<binding type="tns:SoapPort" name="SoapBinding">

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


-<operation name="method1">

<soap:operation soapAction="http://localhost/webservices/application/soap#method1"/>


-<input>

<soap:body namespace="http://localhost/webservices/application/soap" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="encoded"/>

</input>

</operation>


-<operation name="method2">

<soap:operation soapAction="http://localhost/webservices/application/soap#method2"/>


-<input>

<soap:body namespace="http://localhost/webservices/application/soap" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="encoded"/>

</input>

</operation>

</binding>


-<service name="SoapService">


-<port name="SoapPort" binding="tns:SoapBinding">

<soap:address location="http://localhost/webservices/application/soap"/>

</port>

</service>


-<message name="method1In">

<part type="xsd:anyType" name="inputParam"/>

</message>


-<message name="method2In">

<part type="xsd:anyType" name="inputParam1"/>

<part type="xsd:anyType" name="inputParam2"/>

</message>

</definitions>

Par contre j'ai une erreur lors de l'appel server

Code:

<SOAP-ENV:Envelope><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>WSDL</faultcode><faultstring>SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://localhost/webservices/application/createWSDL' : failed to load external entity "http://localhost/webservices/application/createWSDL"
</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>

si quelqu'un avait une idée ou un exemple concret de webservices en ZF2 dans un projet.

Hors ligne

 

#2 15-05-2014 10:32:54

JGreco
Administrateur
Date d'inscription: 22-12-2012
Messages: 432

Re: soap et zf2

Salut, tu as posté dans la mauvaise section ton post à peu de chance d'aboutir a une réponse sur zf2, tu es dans la section zf1 smile Orkin ou un administrateur s'il passe par là le mettra dans la bonne section.


ZF2 et doctrine addict
profil stack overflow : http://stackoverflow.com/users/3333246/ … ab=profile

Hors ligne

 

#3 15-05-2014 10:57:53

jb66
Nouveau membre
Date d'inscription: 08-08-2013
Messages: 3

Re: soap et zf2

désolé j'ai pas fait attention

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