Zend_Soap_Server返回一个空的soap消息

时间:2014-06-14 07:55:34

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

我遇到了我创建的Zend_Soap_Server的问题。不知何故,服务器正在返回:

HTTP/1.1 202 Accepted
Date: Sat, 14 Jun 2014 07:39:06 GMT
Server: Apache/2.2.22 (Debian)
X-Powered-By: PHP/5.4.4-14+deb7u10
Content-Length: 0
Vary: Accept-Encoding
Connection: close
Content-Type: text/html

问题是,它应该回应一些事情。我的意思是我应该找回一个标识符(见下文)。

我所拥有的代码:

class MyShorts {

  [...]

  /**
   * Store a new URL into the database.
   * 
   * @param string The URL to store
   *
   * @return string the unique identifier for this URL
   * 
   * @exception for database errors.
   */
  public function store($url) {

    $db = $this->getDb();

    while ( true ) {
      try {
        $identifier = $this->getRandomIdentifier(5);
        $db->insert('urls', array('identifier' => $identifier,
                                  'long'       => $url,
                                  'created'    => new Zend_Db_Expr('NOW()'),
        ));

        return $identifier;
      }
      catch( Exception $e ) {
        throw $e;
      }
    }

    return '';
  }

正如您在此处所见,它在数据库中存储了一个url,并返回标识符。从我所看到的是,在数据库中,它被正确存储。所以打电话和东西工作正常。

只是我没有得到标识符。怎么会这样?

谢谢!

BTW,我如何处理传入的请求:

$soap = new Zend_Soap_Server($WSDL);
$soap->setClass('MyShorts');
$soap->handle();

1 个答案:

答案 0 :(得分:0)

不知何故上述方式不起作用。 然而,有什么用呢:

$soap = new Zend_Soap_Server(null, array('uri' => $WSDL));

显然$ WSDL是soap base url的url,而不是wsdl ...