Sto usando JAXB (attraverso un pasticcio di JaxWS e CXF) e sto tentando di eseguire il marshalling del tipo BigDecimal in una stringa (numero) e int (esponente) perché ora abbiamo un front-end che non può interpretare BigDecimal grazie ai problemi di localizzazione .Come faccio a applicare globalmente un XmlAdapter a un programma JAXB?
Quello che sto provando è usare un XmlAdapter per convertire BigDecimal nel mio tipo, BigDecimalUnScaled. Funziona bene finché metto la mia annotazione @XmlJavaTypeAdapter direttamente sul campo. Tuttavia, quello che mi piacerebbe davvero fare è metterlo sull'implementazione del mio servizio Web e farlo applicare globalmente a tutti i BigDecimals senza dover effettuare il marshalling individuale di ciascun oggetto restituito. C'è un modo per farlo?
E.g.
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
Ho provato a mettere l'adattatore solo sull'implementazione, ma non funziona.
Qualche idea?
Per quanto posso vedere, questo non funzionerà in quanto le informazioni sul pacchetto devono essere nella cartella dell'oggetto modello, rendendola applicabile a tutte le istanze del mio servizio. Metterlo sul pacchetto del servizio non funziona - l'ho già provato. – Andrew