我用来创建CXF客户端的WSDL文件具有以下元素定义:
<xsd:element name="Rate">
<xsd:simpleType>
<xsd:restriction base="xsd:decimal">
<xsd:totalDigits value="18" />
<xsd:fractionDigits value="2" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
然而,当我尝试发送SOAP消息时,小数点后的位数超过了最大值。例如,我得到了2.48862,而期望的是2.48。为了解决这个问题,我打算实现一个XmlAdapter来编组这些值,但我无法将WSDL中的元素映射到客户端,因为只有XmlAdapter类作为注释传递给字段声明。
@XmlJavaTypeAdapter(CustomXmlAdapter.class)
似乎没有办法告诉XmlAdapter字段必须在小数点后有2位数字。
小数位数从元素到元素不同。我也无法更改WSDL。
是否有一种方式可以在遵守WSDL中指定的小数点位数的同时格式化这些元素?