我正在尝试访问当前服务器上不同服务器上存在的类的方法,以便我可以共享他们的方法,这样就不必再次编写相同的方法
所以我在我的系统上配置并安装了PHP SOAP扩展..
之后我在服务器端创建了一个SOAPService.php
文件,其中包含以下代码。
<?php
// *** The SOAP class wrapper: myClassSoapServer.php ***
require_once('bc_seller_classes/Vendor/Vendor.php');
$options = array('uri' => 'http://merchants.bookchor.local/bc_seller_classes/Vendor/');
$SOAPServer = new SoapServer(null, $options);
$SOAPServer->setClass('Vendor');
$SOAPServer->handle();
?>
&#13;
在这里,您可以看到我想访问Vendor类。
在客户端,我使用以下代码创建soap.php
,以便我可以访问Vendor类的get_module()
方法。
<html>
<head></head>
<body>
<?php
// *** The SOAP way: using a class remotely ***
$options = array(
'location' => 'http://merchants.bookchor.local/VendorSoapService.php',
'uri' => 'http://merchants.bookchor.local/'
);
$hdl = new SoapClient(null, $options);
var_dump($hdl);
$data = $hdl->get_module();
echo "hi";
var_dump($data);
?>
</body>
</html>
&#13;
但是当我在客户端执行soap.php
时,它会出现以下错误
Uncaught SoapFault exception: [Client] looks like we got no XML document
所以我哪里出错了。
PS:get_module()函数返回一个我想在这里使用的数组。
SOAPService.php
和soap.php
都放在项目的根文件夹中。