Как преобразовать целочисленный параметр в JAXB? - PullRequest
0 голосов
/ 03 октября 2011

Я создаю сервис SOAP с использованием JAX-WS и JAXB. Существует счетный параметр. Как я могу использовать CostTize DataTypeConvert для его преобразования? Я хочу преобразовать объект параметра типа Integer (не POJO) с помощью моего costomisze DataTypeConvert. Потому что, если сообщение SOAP содержит тег «count», это значение будет равно 0, а если сообщение SOAP без тега «count», это значение будет равно нулю. Я хочу, чтобы в обоих сценариях было установлено значение null. Если поле Integer в POJO, я могу использовать @XmlJavaTypeAdapter для его преобразования. Но @XmlJavaTypeAdapter не может использовать параметр типа Integer, который непосредственно в методе.

     @WebMethod
     public Team getTeamByCondition(@WebParam(name = "Name") String name,
        @WebParam(name = "Condition") String condition,
        @WebParam(name = "Count") Integer count) {
     }

Если кто-нибудь может сказать мне, как JAX-WS конвертирует параметры?

1 Ответ

0 голосов
/ 03 октября 2011

Вы можете создать класс-оболочку для вашего счета с помощью JAXB.

@XmlType
class Count {
    @XmlValue
    Integer count;
}

Альтернатива ... Если вы хотите использовать класс-оболочку, взгляните на XmlAdapter . У них там довольно хорошие образцы. В основном вы аннотируете свое Integer с помощью @XmlJavaTypeAdapter. Аннотация должна указывать на адаптер, который вы создаете. Вам все еще нужно создать класс-оболочку, как описано выше, но ваш адаптер может сопоставить любое целое число, которое вы определили, с этим классом-оболочкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...