[英]Nusoap, return array of data as XML in web service
我有一個PHP soap服務器(使用nuSoap)和一個Java客戶端(使用Axis2)。 效果很好,直到沒有效果為止。
我要執行的操作的要旨是將代碼發送到服務,並返回文件名的XML列表。
<filename>20120413.zip</filename>
這是SSCE
<?
require_once('nusoap/lib/nusoap.php');
$server = new soap_server();
$server->configureWSDL('Download Database Backup', 'urn:downloadDatabase');
$server->register('getBackupFileNames', // method
array('herdCode' => 'xsd:string'), // input parameters
array('fileList' => 'xsd:string'), // output parameters
'urn:uploadDatabase', // namespace
'urn:uploadDatabase#uploadDatabase', // soapaction
'rpc', // style
'encoded', // use
'uploadDatabase' // documentation
);
function getBackupFileNames($herdCode)
{
$location = "/home/rhythms/backups/" . $herdCode;
$fileList = scandir($location);
return $fileList;
}//end function
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
?>
關鍵時刻,我知道我可以進行一次foreach並手動將XML創建為字符串。 但是,它隨后得到了XMLEncoded。 有沒有更好的辦法? 我想默認在WSDL中發布它。 我也嘗試過complexType,但是在Axis2方面卻遇到了麻煩。
謝謝!
這不是直接的答案。 我要說的是,您可以使用SOAP-ARRAY復雜數據類型發送SOAP數組。 但這不是一個很好的方法。 相反,我將研究PHP提供的本機SOAP實現。
Axis2不能很好地處理SOAP-ARRAY復雜數據類型,因此我認為將實現調整為PHP的本機類型會更容易。
這只是一個腳注,因此希望其他人不會像我試圖找到一個好的SOAP實現那樣失敗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.