簡體   English   中英

如何將XmlAdapter全局應用於JAXB程序?

[英]How do I globally apply an XmlAdapter to a JAXB program?

我正在使用JAXB(通過一堆JaxWS和CXF),並試圖將BigDecimal類型編組為字符串(數字)和int(指數),因為現在有了前端,由於語言環境問題,它無法解釋BigDecimal。

我正在嘗試使用XmlAdapter將BigDecimal轉換為我自己的類型BigDecimalUnScaled。 只要我將@XmlJavaTypeAdapter批注直接放在字段上,此方法就可以正常工作。 但是,我真正想做的是將其放在我的Web Service實現中,並將其全局應用於所有BigDecimal,而不必分別編組每個返回對象。 有什么辦法可以做到嗎?

例如

Interface DummyWebService
-- Get Return Object (Return object is a POJO with say an ID and a BigDecimal value)

Implementation default
-- No type annotation, uses default BigDecimal marshaller

Marshalled Implementation
-- XmlTypeAdapters implementation, should globally use BigDecimal

我已經嘗試過僅將適配器放在實現中,但是它不起作用。

有任何想法嗎?

您可以在包級別注冊XmlAdapter並將其應用於該包內該類型的所有字段/屬性:

com / example / package-info.java

@XmlJavaTypeAdapters({
    @XmlJavaTypeAdapter(value=BigDecimalAdapter.class, type=BigDecimal.class)
})
package com.example;

import javax.xml.bind.annotation.adapters.*; 

想要查詢更多的信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM