php SoapServer不打印任何xml文档

时间:2011-10-08 08:16:08

标签: php soap soapserver

所有

我在代码下面创建了一个soap服务器。我发现在PHP中创建wsdl文件有点困难。所以我决定使用非wsdl模式。

 $soapServer = new SoapServer(NULL,array('uri'=>'http://com.test.env',
                                            'encoding'=>'UTF-8'));
    $soapServer->addFunction("workprocess_orders_api_add");
    $soapServer->addFunction("workprocess_list_api_get_local_name");


    $soapServer->handle();

但是当我尝试访问此程序时,它什么都不打印。 web浏览器和程序(我使用SoapClient)

  $client = new SoapClient(NULL,array('uri'=>'http://com.test.env',
                                    'location'=>'http://localhost/~breeze.kay/ams/workprocess/api/soap/',
                                    'trace'=>1,
                                    'style'    => SOAP_DOCUMENT,
                                    'use'      => SOAP_LITERAL));


var_dump($client->__call('workprocess_orders_api_add',array())); //print null
var_dump($client->__getFunctions()); //print null

我累了在客户端调用这样的函数:

echo $client->sayHello('test');

我收到错误:

Fatal error: Uncaught SoapFault exception: [Client] looks like we got no XML document in /Users/breeze.kay/Sites/ad-test/soap.php:15

哪里错了?我不知道。:(代码看起来没问题。为什么没有打印?

2 个答案:

答案 0 :(得分:0)

好的,我试过了。

问题是请求网址必须附加?wsdl,如下所示:http://localhost/wbs/api.php?wsdl

但我对我的网站使用url-rewrite。重写规则打破了原始的url结构。

顺便说一句,有人知道在哪里谈论肥皂要求的网址规则?

我读了一些手册但没找到它。

答案 1 :(得分:0)

{4}}错误通常发生在php打开之前或关闭标记之前有空格,请尝试清除并测试。