Как глобально применить XmlAdapter к программе JAXB?

Я использую JAXB (через беспорядок JaxWS и CXF) и пытаюсь маршалировать тип BigDecimal в строку (число) и int (экспоненту), потому что теперь у нас есть внешний интерфейс, который не может интерпретировать BigDecimal из-за проблем с локалью. .

Я пытаюсь использовать XmlAdapter для преобразования BigDecimal в мой собственный тип BigDecimalUnScaled. Это работает нормально, пока я помещаю свою аннотацию @XmlJavaTypeAdapter прямо в поле. Однако то, что я действительно хотел бы сделать, это поместить его в свою реализацию веб-службы и глобально применить ко всем BigDecimals без необходимости индивидуальной маршалировки каждого возвращаемого объекта. Есть ли способ сделать это?

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

Я пытался просто поставить адаптер на реализацию, но это не сработало.

Есть идеи?

7
задан Andrew 17 May 2012 в 14:22
поделиться