2016-07-18 1 views
2

Я пишу веб-службы JAX-WS, которые должны возвращать пользовательский объект, являющийся стороной сторонней библиотеки.JAX-WS как вернуть пользовательский объект класса из сторонней библиотеки

Пример метода:

@WebMethod 
public CustomObject create(CustomObject2 object) 

Я не в состоянии изменить CustomObject как она является частью 3-й партии библиотеки. Есть ли простой способ, как изменить это, чтобы иметь JAX-B-совместимые параметры и типы возврата?

ответ

0

Если CustomObject является POJO, вы можете использовать наследование, чтобы добавить аннотации JAXB, и Apache Commons BeanUtils.copyProperties клонировать свойства объекта JAXB

CustomObjectJAXB

@XmlRootElement(name = "CustomObject") 
public class CustomObjectJAXB extends CustomObject{ 

WebMethod

@WebMethod 
public CustomObject create(CustomObject2 object) 
    CustomObject co = ... // Get CustomObject from third party library 

    CustomObjectJAXB coJaxb = new CustomObjectJAXB() 
    BeanUtils.copyProperties (coJaxb,co); 
    return coJaxb; 
} 

Это решение просто и, вероятно, отлично работает с обычными объектами, но если CustomObject является сложным (содержит списки, карты или другие объекты), результирующий xml, вероятно, не будет очень ортодоксальным

Смежные вопросы