【问题标题】:JAX-WS how to return custom class object from 3rd party libraryJAX-WS 如何从 3rd 方库返回自定义类对象
【发布时间】:2016-07-18 06:03:40
【问题描述】:

我正在编写一个 JAX-WS Web 服务,它应该返回属于 3rd 方库的自定义对象。

方法的例子是:

@WebMethod
public CustomObject create(CustomObject2 object)

我无法修改 CustomObject,因为它是第 3 方库的一部分。 有什么简单的方法可以将其更改为具有 JAX-B 兼容的参数和返回类型?

【问题讨论】:

    标签: java web-services jaxb jax-ws


    【解决方案1】:

    如果CustomObject是POJO,可以使用继承添加JAXB注解,使用apache commonsBeanUtils.copyProperties克隆属性到JAXB对象

    CustomObjectJAXB

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

    网络方法

    @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 可能不会很正统

    【讨论】:

      猜你喜欢
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      • 1970-01-01
      • 1970-01-01
      • 2012-12-01
      • 2012-12-16
      • 1970-01-01
      相关资源
      最近更新 更多