如何使用soap和symfony2创建服务

时间:2014-02-10 17:51:04

标签: php symfony soap

我想使用soap和Symfony2创建一个Web服务,但是它给了我以下错误: 无法连接到主机

这是我的代码:

    <?php
namespace Acme\DemoBundle\Services;

class HelloService
{
    private $message;

    public function __construct()
    {
        $this->message = "Hola";
    }

    public function hello($name)
    {
        return $this->message+$name;
    }
}
?>

    #app/config/config.yml
services:
    hello_service:
        class: Acme\DemoBundle\Services\HelloService


 #app/config/routing.yml
servicio:
  pattern: /soap
  defaults: {_controller:AcmeDemoBundle:Demo:service}

cliente:
  pattern: /cliente
  defaults: {_controller:AcmeDemoBundle:Demo:cliente}


public function serviceAction() {
        $server = new \SoapServer('http://example.com/src/Acme/DemoBundle/Resources/views/Demo/hello.wsdl');
        $server->setObject($this->get('hello_service'));

        $response = new Response();
        $response->headers->set('Content-Type', 'text/xml; charset=ISO-8859-1');

        ob_start();
        $server->handle();
        $response->setContent(ob_get_clean());
    }

 public function clienteAction(){
 $client = new \Soapclient('http://example.com/web/app_dev.php/soap?wsdl');
 $result = $client->call('hello', array('name' => 'Scott'));
    }

浏览器中的网址为:http://example.com/web/app_dev.php/cliente 可能有什么不对?

1 个答案:

答案 0 :(得分:0)

我通过擦除缓存ini_set('soap.wsdl_cache_enabled',0)解决了这个问题;函数ini_set( 'soap.wsdl_cache_ttl',0);