Php WSClient赢得';我看不到我的WSDL文件
虽然我试图跟随wso2 wsf for PHP框架的演示,但我似乎无法运行几个示例脚本,即使我已经编译并安装了wso2/wsf.so文件和所有内容 具体地说,在尝试运行WSDL的示例脚本时,我遇到了以下错误:Php WSClient赢得';我看不到我的WSDL文件,php,soap,wsdl,wso2,wsh,Php,Soap,Wsdl,Wso2,Wsh,虽然我试图跟随wso2 wsf for PHP框架的演示,但我似乎无法运行几个示例脚本,即使我已经编译并安装了wso2/wsf.so文件和所有内容 具体地说,在尝试运行WSDL的示例脚本时,我遇到了以下错误: Warning: WSClient::getProxy(wsf_wsdl.php): failed to open stream: No such file or directory in /vagrant/public/test.php on line 8 运行此代码时: try {
Warning: WSClient::getProxy(wsf_wsdl.php): failed to open stream: No such file or directory in /vagrant/public/test.php on line 8
运行此代码时:
try {
$client = new WSClient(array("wsdl"=>"http://localhost:8888/samples/wsdl_mode/sample_wsdl_11.wsdl",
));
$proxy = $client->getProxy();
$return_val = $proxy->QueryPurchaseOrder(array("productName"=> "Testing",
"quantity" => 234,
"date" => "2003-12-34",
"orderNo" => 345));
printf("<strong>Shipping address </strong><br/>");
printf("Name : %s <br/>", $return_val["shipTo"]["name"]);
printf("Street : %s <br/>", $return_val["shipTo"]["street"]);
printf("City : %s <br/>", $return_val["shipTo"]["city"]);
printf("State : %s <br/>", $return_val["shipTo"]["state"]);
printf("Zip : %s <br/>", $return_val["shipTo"]["zip"]);
printf("<br/><strong>Billing address </strong><br/>");
printf("Name : %s <br/>", $return_val["billTo"]["name"]);
printf("Street : %s <br/>", $return_val["billTo"]["street"]);
printf("City : %s <br/>", $return_val["billTo"]["city"]);
printf("State : %s <br/>", $return_val["billTo"]["state"]);
printf("Zip : %s <br/>", $return_val["billTo"]["zip"]);
printf("<br/><strong>Product info </strong><br/>");
printf("Product ID : %s <br/>", $return_val["product"]["productId"]);
printf("ShippingDate : %s <br/>", $return_val["product"]["shippingDate"]);
printf("Status : %s <br/>", $return_val["product"]["status"]);
} catch (Exception $e) {
printf("Message = %s\n",$e->getMessage());
}
试试看{
$client=新的WSClient(数组(“wsdl”=>)http://localhost:8888/samples/wsdl_mode/sample_wsdl_11.wsdl",
));
$proxy=$client->getProxy();
$return\u val=$proxy->QueryPurchaseOrder(数组(“productName”=>“测试”),
“数量”=>234,
“日期”=>“2003-12-34”,
“订单号”=>345);
printf(“发货地址
”);
printf(“名称:%s
,$return\u val[“shipTo”][“Name”]);
printf(“街道:%s
,$return\u val[“shipTo”][“街道]);
printf(“城市:%s
,$return\u val[“shipTo”][“城市]);
printf(“状态:%s
,$return_val[“shipTo”][“State”]);
printf(“Zip:%s
,$return\u val[“shipTo”][“Zip”]);
printf(“
账单地址”
);
printf(“名称:%s
,$return\u val[“billTo”][“Name”]);
printf(“街道:%s
,$return_val[“billTo”][“Street”]);
printf(“城市:%s
,$return\u val[“billTo”][“城市]);
printf(“状态:%s
,$return_val[“billTo”][“State”]);
printf(“Zip:%s
,$return\u val[“billTo”][“Zip”]);
printf(“
产品信息”
);
printf(“产品标识:%s
,$return\u val[“产品”][“产品标识]);
printf(“发货日期:%s
,$return\u val[“产品”][“发货日期]);
printf(“状态:%s
,$return\u val[“产品”][“状态”]);
}捕获(例外$e){
printf(“Message=%s\n”,$e->getMessage());
}
文件确实存在;当我在浏览器中运行它时,我得到了.wsdl文件本身,但是WSClient似乎不喜欢它。这是因为在
php.ini
文件中没有包含WSO2脚本。脚本应该在与扩展一起分发的包中(应该有Scripts
目录)。将该目录保存在对您的情况有意义的地方(系统中的某个地方,或项目中的某个地方,由您决定),然后将该目录的路径放入php.ini
文件中,如下所示:
include_path = "/path/to/wso2/scripts"
最终,您可以将wso2脚本目录放在php include目录中。在任何情况下,您都应该重新启动apache服务,例如:
sudo service apache2 restart
它应该会起作用