【问题标题】:How to generate a wsdl using zend soap如何使用 zend soap 生成 wsdl
【发布时间】:2011-01-13 13:40:37
【问题描述】:

我正在尝试使用 Zend 框架中的自动发现类生成一个 wsdl 文件。结果定义似乎不可用,后续功能也不起作用。

下面是我正在使用的代码...

<?php

/**
 * Returns Hello World as a string.
 *
 * @return string
 */
 function hello( )
 {
  return "Hello World";
 }


 if( isset( $_GET['wsdl'] ) )
 {
  $autodiscover = new Zend_Soap_AutoDiscover();
  $autodiscover->addFunction( 'hello' );
  $autodiscover->handle();
 }
 else if( isset( $_GET['client'] ) )
 {
  $client = new Zend_Soap_Client( "http://localhost/service.php" );
  echo $client->hello();
 }
 else
 {
  $server = new Zend_Soap_Server( "http://localhost/service.php?wsdl" );
  $server->addFunction( 'hello' );
  $server->handle();
 }

?>

这一切似乎都默默地失败了,调用http://localhost/service.php?wsdl 只是默默地死掉并且不生成任何 WSDL 定义。有人可以告诉我我做错了什么吗:)

非常感谢

【问题讨论】:

    标签: php zend-framework soap wsdl zend-soap


    【解决方案1】:

    我尝试了您发布的代码,除了我添加了:require('Zend/Soap/AutoDiscover.php');。它奏效了。

    【讨论】:

      【解决方案2】:

      尝试在 hello 函数中添加 docblocking。 WSDL 生成器依赖它来生成正确的 WSDL 文件。 http://framework.zend.com/manual/en/zend.soap.autodiscovery.html 请参阅该链接中的重要说明。

      【讨论】:

      • 我在 hello() 方法上方放置了以下块注释: /** * 将 Hello World 作为字符串返回。 * * @return string */ 它仍然什么都不做。 :|
      【解决方案3】:

      是的,你缺少 require('Zend/Soap/AutoDiscover.php');就是这样。

      【讨论】:

        猜你喜欢
        • 2016-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-16
        • 1970-01-01
        • 2013-10-26
        • 2014-12-15
        • 2014-04-10
        相关资源
        最近更新 更多