2016-04-27 21 views
1

我想從wso2cep-4.1.0與下面的代碼UserAdmin管理服務的功能列表:(修訂版)我怎樣才能得到wso2cep-4.1.0 PHP和肥皂UserAdmin服務功能列表?

<?php 
checkWSDLfunctions(); 

function checkWSDLfunctions(){ 

    $wsdl = "https://10.69.16.44:9445/services/UserAdmin?wsdl"; 

    $paramtrs = array(
     'trace' => true, 
     'login' => 'admin', 
     'password' => 'admin', 
     'keep_alive' => false 
     ); 

    $client = new SoapClient($wsdl, $paramtrs); 
    print_r($client->__getFunctions()); 
} 
?> 

的WSDL可從Web瀏覽器並加載了SoapUI它沒有任何問題,我使用PHP 5.2.9與Apache 2.0.55,當我運行上述PHP中,我得到這個:

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://10.69.16.44:9445/services/UserAdmin?wsdl' : Start tag expected, '<' not found in C:\Program Files\Apache Group\Apache2\htdocs\wso2\checkFunctions.php:15 Stack trace: #0 C:\Program Files\Apache Group\Apache2\htdocs\wso2\checkFunctions.php(15): SoapClient->SoapClient('https://10.69.1...', Array) #1 C:\Program Files\Apache Group\Apache2\htdocs\wso2\checkFunctions.php(2): checkWSDLfunctions() #2 {main} thrown in C:\Program Files\Apache Group\Apache2\htdocs\wso2\checkFunctions.php on line 15 

我檢查的其他問題和OpenSSL啓用。 我也試過完全相同的PHP與wsdl從wso2cep 3.1.0,它的工作原理..

你有什麼建議嘗試下?

謝謝!

最好的問候,

更新:我已經通過添加鏈接的wsdl到文件wso2.wsdl,現在__getFunctions()函數返回列表中發現了上述問題的解決方法來自wsdl的函數。

但儘管如此,當我想打電話從WSDL一個簡單的功能,讓我們說listUsers,我得到這個錯誤:

Fatal error: Uncaught SoapFault exception: [HTTP] Error Fetching http headers in C:\Program Files\Apache Group\Apache2\htdocs\CARE.wso2\checkFunctions.php:18 Stack trace: #0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'https://10.69.1...', 'urn:listUsers', 1, 0) #1 [internal function]: SoapClient->__call('listUsers', Array) #2 C:\Program Files\Apache Group\Apache2\htdocs\wso2\checkFunctions.php(18): SoapClient->listUsers() #3 C:\Program Files\Apache Group\Apache2\htdocs\wso2\checkFunctions.php(2): checkWSDLfunctions() #4 {main} thrown in C:\Program Files\Apache Group\Apache2\htdocs\wso2\checkFunctions.php on line 18 

新的PHP代碼:

<?php 
checkWSDLfunctions(); 

function checkWSDLfunctions(){ 

    //$wsdl = "https://10.69.16.44:9445/services/UserAdmin?wsdl"; 
    $wsdl = "wso2.wsdl"; 

    $paramtrs = array(
     'trace' => true, 
     'login' => 'admin', 
     'password' => 'admin', 
     'keep_alive' => false 
     ); 

    $client = new SoapClient($wsdl, $paramtrs); 
    //print_r($client->__getFunctions()); 
    print_r($client->listUsers()); 
} 
?> 

我已經試過默認套接字超時修復在互聯網上建議,但,nothing..maybe我已經錯過了在wso2cep一些設置,但我不知道還有什麼可以改變there..or你認爲什麼可能是這裏的問題?

非常感謝!

尤金

回答

0

經過大量的重試,我發現的唯一的解決辦法是升級Apache服務器和PHP。我已經升級既到Apache 2.4.20和PHP 5.4.45,現在一切工作正常。

我沒有找到原因,但我的假設是,有PHP的肥皂或OpenSSL庫和新版本的CEP之間的不兼容。

希望它有幫助。

如果任何人有一個更好的解釋,將是巨大的。

謝謝。