2015-01-07 61 views
0

我在mule中使用下面的php腳本。當我單獨運行這個php文件(通過wamp)時,我能夠獲得所需的輸出。在mule中在php中使用SoapClient

<?php 

$client1=new SoapClient('example/v2_soap?wsdl', array('trace' => 1, 'connection_timeout' => 120)); 
$username = '******'; 
$password = '******'; 

//retreive session id from login 
$session = $client1->login(
    array(
    'username' => $username, 
    'apiKey' => $password, 
) 
); 

$result= $client1->catalogProductInfo(
    array(
    'sessionId' => $session->result, 
    'productId' => 1, 
) 
); 

print_r($result); 

return $result; 
?> 

但我想通過騾子運行下面的腳本。所以當我通過騾子運行時,我收到以下錯誤。

根異常堆棧跟蹤:

com.caucho.quercus.QuercusErrorException: eval::5: Fatal Error: 'SoapClient' is an unknown class name. 
at com.caucho.quercus.env.Env.error(Env.java:4480) 
at com.caucho.quercus.env.Env.error(Env.java:4399) 
at com.caucho.quercus.env.Env.createErrorException(Env.java:4130) 
+ 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything) 

它說SoapClient的是一個未知的類。這裏有什麼問題?

我必須在這裏包含一些SoapClient嗎?如果是的話,我可以在哪裏找到它。請幫忙!!

回答

0

我不確定mule是否支持php擴展,但這就是錯誤。您可以嘗試將nusoap下載到您的項目中, 不需要任何php擴展。雖然語法有點不同,但不應該更難適應你的代碼。

對於它的價值,這是使用的NuSOAP SOAP請求的一個簡單的例子(從這裏http://www.richardkmiller.com/files/msnsearch_nusoap.html拍攝):

require_once('nusoap/lib/nusoap.php'); 

$request = array('Request' => array(
       'AppID' => 'MSN_SEARCH_API_KEY', 
       'Query' => 'Seinfeld', 
       'CultureInfo' => 'en-US', 
       'SafeSearch' => 'Strict', 
       'Flags' => '', 
       'Location' => '', 
       'Requests' => array(
         'SourceRequest' => array(
           'Source' => 'Web', 
           'Offset' => 0, 
           'Count' => 50, 
           'ResultFields' => 'All')))); 

$soapClient = new soapclient("http://soap.search.msn.com/webservices.asmx?wsdl", false); 
$result = $soapClient->call("Search", $request); 
print_r($result); 

我希望它能幫助。

0

我知道在quercus(而不是Mule)中運行soap客戶端似乎存在問題。

然而,我不建議將注意力放在CXF客戶端和Web服務使用者身上。你在Mule內部運行一個強大的開源ESB,沒有必要編寫一個php腳本來使用服務,你已經有了所有的功能。