Глобальная регистрация XmlAdapter для любых классов в разных пакетах - PullRequest
4 голосов
/ 28 октября 2011

Я использую CXF 2.4 с JAXB.

Могу ли я иметь глобальный XmlAdapter для всех экземпляров моего класса owm (например, LWDate)?

Я написал класс:

public class LWDateAdapter extends XmlAdapter<Date, LWDate>

Сейчас мне нужно добавить @XmlJavaTypeAdapter к каждому параметру, методу или пакету, которые я планирую использовать с CXF.Например,

@WebMethod void test (@WebParam(name="Birthdate") @XmlJavaTypeAdapter(LWDateAdapter.class) LWDate pBirthdate){}

Я хочу попросить CXF / JAXB всегда связывать мой класс LWDate с java.util.Date, возможно ли это?

ОБНОВЛЕНИЕ: @XmlJavaTypeAdapter работаетна уровне пакета, начиная с версии 2.4.4 в соответствии с этой проблемой .

1 Ответ

5 голосов
/ 28 октября 2011

Для вашего случая лучше всего использовать аннотацию @XmlJavaTypeAdapter на уровне пакета. Ниже приведен пост, в котором я использую эту стратегию для Joda-Time классов:

Если у вас есть класс домена, который вы всегда хотите обрабатывать с помощью XmlAdapter, вы можете использовать аннотацию @XmlJavaTypeAdapter на уровне типа:

...