2011-10-03 51 views
0

我正在使用JAX-WS和JAXB創建SOAP服務。有一個計數參數。我如何使用Costomize DataTypeConvert將其轉換?我想通過我的costomisze DataTypeConvert轉換一個Integer(而不是POJO)參數對象。因爲如果SOAP消息包含「count」標記,則此值將設置爲0,但如果沒有「count」標記的SOAP消息,則此值將設置爲null。我希望在這兩種情況下將此參數設置爲null。如果POJO中的Integer字段,我可以使用@XmlJavaTypeAdapter來轉換它。但是@XmlJavaTypeAdapter不能在一個Integer參數中使用,這個參數在方法中很直接。如何轉換JAXB中的Integer參數?

 @WebMethod 
    public Team getTeamByCondition(@WebParam(name = "Name") String name, 
     @WebParam(name = "Condition") String condition, 
     @WebParam(name = "Count") Integer count) { 
    } 

如果有人能告訴我JAX-WS如何轉換參數?

回答

0

您可以使用JAXB爲您的計數創建包裝類。

@XmlType 
class Count { 
    @XmlValue 
    Integer count; 
} 

另... 如果你想使用一個包裝類看一看XmlAdapter。那裏有很好的樣品。基本上你用@XmlJavaTypeAdapter註釋你的Integer。註釋應指向您創建的適配器。您仍然需要創建類似上面的包裝類,但是您的適配器可以將您定義的任何Integer映射到此包裝類。

+0

有什麼辦法可以申請我自己的DataTyepConvert?我不想爲每個簡單的數據類型使用包裝類。 – Chris

相關問題