2013-05-10 117 views
0

Web服務非常新穎(正如您從Q中可以看出的那樣),所以我非常確定這是一個基本問題。java web服務wsdl:從響應變量中獲取數據

我發送到服務器

ExecuteSQLQueryReq sqlParams = new ExecuteSQLQueryReq(); 
sqlParams.setSql(sqlState.getNoDevInDP("LIV_Phones_DP")); 

請求並得到響應我想到:

ExecuteSQLQueryRes getSqlResult = axlPort.executeSQLQuery(sqlParams); 

我可以看到所有的數據是存在於從Eclipse調試 對象enter image description here

但來自對象「getSqlResult」我不知道如何拉出數據。響應是按以下格式: enter image description here

任何幫助將是巨大的

感謝 亞歷克西斯

編輯: 「ExecuteSQLQueryRes」 的屏幕截圖。我看到的唯一方法是返回對象列表,我會這樣做,並提供您在eclipse中提到的變量的屏幕截圖。它的下一步....如何從一個普通的對象獲取數據了..

enter image description here

回答

1

從類型簽名,我說你會調用該服務,像這樣:

List<Object> rows = axlPort.executeSQLQuery(sqlParams) 
          .getReturn() 
          .getRow(); 
for(Object row : rows) { 
    Element rowElement = (Element) row; 
    // utilize DOM API 
} 

據我所知,您發佈的信息是ListElements。在XML:

<row>?</row> 
<row>?</row> 
<row>?</row> 

由於rowanyType任何具體可以推斷關於它的結構。在特定情況下,第一個條目是這樣的假設一個孩子(文本)節點:

<row>339</row> 

可以使用Java DOM APIs訪問數據。

從名稱開始,此服務看起來就像是公開底層數據庫實現。如果您對服務設計有任何影響,請考慮遵守更嚴格的SOA原則。

+0

感謝您的回覆。我想我被卡住的部分是轉換/解析變量「getSqlResult」到「文檔對象」,或者即使這是我應該試圖訪問變量中的數據.. – alexis 2013-05-10 14:11:54

+0

您尚未提供任何信息在'ExecuteSQLQueryRes'類型上。這看起來像一個Eclipse截圖。突出顯示「ExecuteSQLQueryRes」類型並按F3(打開聲明)查看可用的方法和類型層次結構。 – McDowell 2013-05-10 14:24:34

+0

已使用方法和類型的屏幕截圖更新了問題描述。 ExecuteSQLQueryRes類是使用'wsimport'生成的。 – alexis 2013-05-10 14:44:55