0
我們從客戶處獲取WSDL。 (即,我們不能改變它們。)jax ws double tostring更改格式
的類型之一的定義看起來是這樣的:
<complexType name="Type1">
<complexContent>
<restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
<sequence>
<element name="value" minOccurs="0">
<complexType>
<complexContent>
<restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
<choice>
<element name="bigdecimal" type="{http://www.w3.org/2001/XMLSchema}double"/>
<element name="date" type="{http://www.w3.org/2001/XMLSchema}date"/>
<element name="string" type="{http://www.w3.org/2001/XMLSchema}string"/>
</choice>
</restriction>
</complexContent>
</complexType>
</element>
<element name="element2" type="{http://www.w3.org/2001/XMLSchema}integer" minOccurs="0"/>
</sequence>
</restriction>
</complexContent>
</complexType>
造成之類的東西
public void setBigdecimal(Double value) {
this.bigdecimal = value;
}
現在,當我們發送它會產生這樣的事情:
<rpcOp:value>
<rpcOp:bigdecimal>10.0</rpcOp:bigdecimal> <!-- IN SPITE OF THE NAME, THIS IS A DOUBLE VALUE! -->
<rpcOp:string>N</rpcOp:string>
</rpcOp:value>
客戶想要的內容t o被顯示爲不帶十進制數字,即10等
我懷疑當從Java對象生成請求xml時,JAX-WS框架只是簡單地調用Double.toString(),這將不可避免地添加一個小數點,十進制數字。
有沒有辦法改變這個而不能修改WSDL?爲這種類型註冊一些自定義數字格式化程序或類似的東西?
謝謝!