2015-02-23 44 views
0

我的webservice方法的輸入參數是類AddSingleDocRequest的對象。這個類包含所有的輸入字段作爲類的實例變量與他們的getter和setter。我想讓一些輸入字段是強制性的。達到此目的的最佳方法是什麼?使輸入參數爲必填JAX-WS

以下是代碼片段:

**//webservice method 

public String uploadDoc(AddSingleDocRequest request) 
    { 
    } 

**//Request Class** 

public class AddSingleDocRequest 
{ 

    private String sFilepath; 

    private String sDataClass; 

    public void setDataClassName(String dataClassName) 
{ 
     this.sDataClass= dataClassName; 
    } 


    public String getDataClassName() { 
     return sDataClass; 
    } 

    public void setFilePath(String filePath) 
    { 
     this.sFilepath=filePath; 
    } 

    public String getFilePath() 
    { 
     return sFilepath; 
    } 
} 

我要讓sFilePath參數作爲強制性的。

回答

0

添加下一個JAX-B註釋:

@XmlType(name = "AddSingleDocRequestType", propOrder = { 
    "sFilepath", "sDataClass" 
}) 
public class AddSingleDocRequest { 

    @XmlElement(name = "sFilepath", required = true) 
    private String sFilepath; 

    @XmlElement(name = "sDataClass", required = false) 
    private String sDataClass; 

    public void setDataClassName(String dataClassName) { 
     this.sDataClass = dataClassName; 
    } 

    public String getDataClassName() { 
     return sDataClass; 
    } 

    public void setFilePath(String filePath) { 
     this.sFilepath = filePath; 
    } 

    public String getFilePath() { 
     return sFilepath; 
    } 
} 

查看更多在Using JAXB to customize mapping for JAX-WS web services

+0

但是這些註釋無法解析。是否有任何jar包含在使用註釋的構建路徑中? – 2015-02-23 09:48:31

+0

哦!抱歉!添加'import javax.xml.bind.annotation。*;' – 2015-02-23 15:03:19

+0

是的。導入錯誤解決後,仍然在生成的WSDL中,minoccurs = 0用於輸入字段。在服務器上的Axis 2 lib direcory中,存在jaxb-api-2.1,是2.2 JAX-B是必需的還是什麼? – 2015-02-24 07:48:23