Php WSClient赢得';我看不到我的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 {

虽然我试图跟随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 {

    $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
它应该会起作用