簡體   English   中英

Nusoap,將數據數組作為XML返回Web服務中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM