Formatowanie komunikatów SOAP klienta CXF
Plik WSDL użyty do utworzenia klienta CXF ma tę definicję elementu:
<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>
Jednak gdy próbuję wysłać komunikat SOAP, liczba cyfr po przecinku przekracza maksymalną wartość. Na przykład otrzymuję 2,48862, oczekując 2,48. Aby rozwiązać ten problem, planowałem zaimplementować XmlAdapter w celu zestawienia wartości, jednak nie mogę zmapować elementu w WSDL na klienta, ponieważ klasa onyl XmlAdapter jest przekazywana do deklaracji pola jako adnotacja.
@XmlJavaTypeAdapter(CustomXmlAdapter.class)
Wydaje się, że nie ma możliwości poinformowania XmlAdapter, że pole musi zawierać 2 cyfry po przecinku.
Liczba cyfr ułamkowych zmienia się z elementu na element. Nie mam także dostępu do zmiany WSDL.
Czy istnieje sposób na sformatowanie tych elementów, obserwując liczbę miejsc dziesiętnych określonych w WSDL?