0

全部

我使用下面的代码创建了一个肥皂服务器。我发现在 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();

但是当我尝试访问这个程序时,它什么也没打印。网络浏览器和程序(我使用 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

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

4

2 回答 2

0

好的,我试过了。

问题是请求 url 必须附加 ?wsdl ,像这样:http://localhost/wbs/api.php?wsdl

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

顺便说一句,有人知道在哪里谈论肥皂请求的 url 规则吗?

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

于 2011-10-09T09:27:01.423 回答
0

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

于 2011-12-14T07:41:20.037 回答