php SoapServer不打印任何xml文档


php SoapServer not print any xml document

所有

我使用下面的代码创建了一个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

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

好的,我试过了。

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

但我使用url重写我的网站。重写规则破坏了原始url结构。

顺便问一下,有人知道在哪里谈论soap请求的url规则吗?

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

XML document not found错误通常发生在php打开之前或关闭标记之后有空白时,请尝试清除空白并进行测试。