簡體   English   中英

Java Web服務 - 列表與數組

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

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