2009-10-19 21 views
1

WS做一個web服務。作爲參數,我正在使用兩個字符串和一個對象的數組,這些對象的類型是我的項目中的一個類。我需要做什麼才能接受webservice中的數組參數?

我有Web服務接口和實現創建的,它是與此類似:

@WebMethod(operationName = "getStuff") 
@WebResult(name = "result") 
Mix getStuff(
    @WebParam(name = "string1") String one, 
    @WebParam(name = "string2") String two, 
    @WebParam(name = "stuff") Stuff[] stuff 
); 

我返回類型混合的對象,它是在我的項目一類,我接受一個類型的東西的數組這是我項目中的另一個課程。從其他人試圖使用服務時,從java測試不是問題,或者我嘗試使用soapUI發送請求時,數組始終爲空。我需要做什麼以便消費我的服務的任何人都可以正確地發送類型爲Stuff的數組?我需要使用JAXB進行一些定製嗎?

+0

核心問題是Stuff類。我忘記了包含導致我的問題的默認構造函數。我最終也將代碼更改爲List。 – Barry 2009-11-03 15:42:54

回答

-1

JAXB2使用列表,而不是數組,所以你應該更換籤名

@WebMethod(operationName = "getStuff") 
@WebResult(name = "result") 
Mix getStuff(
    @WebParam(name = "string1") String one, 
    @WebParam(name = "string2") String two, 
    @WebParam(name = "stuff") java.util.List<Stuff> stuff 
); 

同時,確保MixStuff有JAXB註解。

+0

我有理由確信這篇文章是不正確的,至少在CXF中。請注意,由於我們在討論params,因此我們正在討論JAX-WS,而不是JAXB。 JAX-WS將處理數組,並且絕對沒有要求將POJO的任何JAXB註釋用作參數或返回值。 – bmargulies 2009-11-12 01:10:12

+0

-1正如@bmargulies所述,這是行不通的! – 2010-10-21 15:18:35

相關問題