@Santoshありがとうございます! XMLAdapterは私が必要としていたものでした。 さらに、私は私の質問でApache CXFでクライアントクラスを生成すると述べました。この種の問題では、bindings.xjb(mavenのcxf-codegen-pluginに使用するバインディングファイル)に次のコードを追加する必要がありました。
<jaxb:javaType name="java.math.BigDecimal" xmlType="xs:decimal"
parseMethod="sample.BigDecimalFormater.parseBigDecimal"
printMethod="sample.BigDecimalFormater.printBigDecimal" />
これは私のフォーマッタコードです:、生成されたクラスのBigDecimalフィールドで
public class BigDecimalFormater {
public static String printBigDecimal(BigDecimal value) {
value.setScale(5);
return value.toPlainString();
}
public static BigDecimal parseBigDecimal(String value) {
return new BigDecimal(value);
}
}
次に、このプラグインは私のためのアダプタを生成
public class Adapter1 extends XmlAdapter<String, BigDecimal> {
public BigDecimal unmarshal(String value) {
return (sample.BigDecimalFormater.parseBigDecimal(value));
}
public String marshal(BigDecimal value) {
return (sample.BigDecimalFormater.printBigDecimal(value));
}
}
が注釈@XmlJavaTypeAdapter(アダプタ1の.classファイル)を持っています問題を解決しました。
あなたはどのバインディング(例:jaxbなど)を使用していますか? – Santosh
xmlバインディングにjaxbを使用します。このフィールドには注釈があります。 @XmlElement(name = "NetPrice"、required = true) protected BigDecimal netPrice; –