How to create SOAP service using ZF2?

雨燕双飞 提交于 2019-12-25 03:19:21

问题


What is wrong in my code? How to create SOAP service for my Math class?
Please note that, i don't mentioned namespace for Math.php because if i did that i got class Math does not exist message on browser. Without mentioning namespace of Math class how to create Math object in indexAction().
Please guid me how to create my first wsdl for Math class.

Folder structure
Module
--Soap
----Controller
------>IndexController.php
----Services
------>Math.php

IndexController.php

include_once __DIR__ . '/../Services/Math.php'
class IndexController extends AbstractActionController
{
  private $_URI = "http://zf2.services/soap";
  public function indexAction()
  {
   $server = new Server(null, array('uri' => $this->_URI));
   $server->setClass('Math');
   //$server->setObject(new Math());
   $server->handle();
  }
}

Math.php

//namespace Soap\Services;
    class Math
    {
       /**
        * Method
        * @return string
        */
       public function greeting()
       {
         return 'Hello world';
       }
    }

Resulted XML

<SOAP-ENV ..>
 <SOAP-ENV:Body>
  <SOAP-ENV:Fault>
   <faultcode>sender</faultcode>
   <faultstring>Invalid XML</faultstring>
  </SOAP-ENV:Fault>
 </SOAP-ENV:Body>
</SOAP-ENV>

回答1:


You are right about the namespace written in the Math.php.

Try this in IndexController.php -

include_once __DIR__ . '/../Services/Math.php';

class IndexController extends AbstractActionController {

    private $_URI = "http://zf2.services/soap";

    public function indexAction() {
        $autodiscover = new \Zend\Soap\AutoDiscover();
        $autodiscover->setClass('Math')
                     ->setBindingStyle(array('style' => 'document'))
                     ->setUri($this->_URI);
        header('Content-type: application/xml');
        echo $autodiscover->toXml();
        exit();
    }
}

I have tried it and it works fine.



来源:https://stackoverflow.com/questions/24954999/how-to-create-soap-service-using-zf2

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!