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?

questionAnswers(1)

yourAnswerToTheQuestion