Web services JAXB解组问题

Web services JAXB解组问题,web-services,inheritance,jaxb,Web Services,Inheritance,Jaxb,JAXB继承相关问题: 我正在创建一个webservice,它的参数是一个超类 在调用webservice时,客户端将子类作为实际参数传递 发送到服务器的SOAP消息包含xsi:type=“ns:subclass” 问题是: 如何将传递的参数解组到超类,但将参数的运行时类型保留为子类 我在谷歌上搜索了stackoverflow的类似问题,但建议的解决方案不适合我。对于这个用例,您必须确保JAXBContext知道所有子类型。可以通过在创建JAXBContext时传入它们来实现这一点: JAXBC

JAXB继承相关问题:

  • 我正在创建一个webservice,它的参数是一个超类
  • 在调用webservice时,客户端将子类作为实际参数传递
  • 发送到服务器的SOAP消息包含xsi:type=“ns:subclass”
  • 问题是: 如何将传递的参数解组到超类,但将参数的运行时类型保留为子类


    我在谷歌上搜索了stackoverflow的类似问题,但建议的解决方案不适合我。

    对于这个用例,您必须确保
    JAXBContext
    知道所有子类型。可以通过在创建JAXBContext时传入它们来实现这一点:

    JAXBContext jc = JAXBContext.newInstance(Square.class, Circle.class);
    
    或者在超类上使用
    @xmlseea
    注释,以便自动引入所有子类:

    @XmlSeeAlso({Square.class, Circle.class)
    public class Shape {
    }
    
    JAXBContext jc = JAXBContext.newInstance(Shape.class); 
    
    了解更多信息