此Web服務屬於文檔文字包裝 Web服務的類別。以下幾點爲真:
- 綁定是文檔/文本
- 操作的(getProductList())進/出消息包含一個WSDL:一部分的每個
- 請求一部分是指XSD元件用相同的名稱作爲操作
- 響應部分是指XSD元素具有相同的名稱作爲操作+「響應」
所以,你必須void
回報,但真的有4個結果:
Holder<List<Product>> oProduct
Holder<Integer> iTotalCount
Holder<List<RefineByGroup>> oActiveRefineByGroup
Holder<List<RefineByGroup>> oRefineByGroup
CXF(使用wsimport
)已經產生WRAPPED
式操作。您還可以生成使用CXF的BARE
風格:
wsdl2java -bareMethods http://v3.core.com.productserve.com/ProductServeService.wsdl
這種方式,而不是:
@WebMethod
@RequestWrapper(localName = "getProductList", targetNamespace = "http://v3.core.com.productserve.com/", className = "productserve.GetProductList")
@ResponseWrapper(localName = "getProductListResponse", targetNamespace = "http://v3.core.com.productserve.com/", className = "productserve.GetProductListResponse")
public void getProductList(
...
你會得到:
@WebResult(name = "getProductListResponse", targetNamespace = "http://v3.core.com.productserve.com/", partName = "return")
@WebMethod
public GetProductListResponse getProductList(
@WebParam(partName = "parameters", name = "getProductList", targetNamespace = "http://v3.core.com.productserve.com/")
GetProductList parameters
) throws ApiException;
謝謝你的詳細解答。非常感激。 –