[英]Java Web Service - List vs Array
我是網絡服務的新手。 我正在編寫一些簡單的Web服務進行測試,我有以下問題。
這里的網站說JAX-RPC支持基本類型的數組。 但是當我寫一個簡單的Web服務時
@WebService
@SOAPBinding(style=Style.RPC)
public interface AddNums {
@WebMethod
public int addNumbers(int[] nums);
}
並從wsdl生成客戶端代碼我得到以下WS客戶端接口。
@WebMethod
@WebResult(partName = "return")
public int addNumbers(
@WebParam(name = "arg0", partName = "arg0")
IntArray arg0);
它生成具有成員受保護List的IntArray類
public class IntArray {
@XmlElement(nillable = true)
protected List<Integer> item;
這是支持數組的方式嗎? 那么,傳遞數組的唯一方法是創建一個IntArray實例並為它設置List of Integers ?
當我將web服務設為Document樣式時
WSDL的WS客戶端接口具有以下方法:
public int addNumbers(
@WebParam(name = "arg0", targetNamespace = "")
List<Integer> arg0);
原始服務中的int []數組成為List <Integer>
這是否意味着Web服務中的Array類型總是在wsdl生成的客戶端代碼中轉換為List?
JAX-WS使用JAXB進行綁定。 <sequence>
的默認映射是List
。 但您可以使用@XmlJavaTypeAdapter
批注提供XML內容的自定義映射。
您可以在JAXB 簡介中看到有關JAXB的更多信息(Java教程>用於XML綁定的Java體系結構(JAXB))
另一方面,您可以嘗試返回一個數組。 請參閱問題的答案我無法使用JAX-WS返回數組String [] 。 但也許你應該考慮:看看這個問題: 你能從JAX-WS @WebMethod返回一個數組嗎? 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.