关于继承类的JAXB解组

时间:2015-05-11 13:21:21

标签: java xml inheritance jaxb


  这是关于在处理编组/解组继承类时JAXB编组的一个经典问题。通常的解决方案是使用@XmlSeeAlso或使用JAXBContext.newInstance(child.class)创建子类上下文。但在我们的例子中,我们正在处理插件类型体系结构(Java ServiceLoader),其中我们不知道在运行时加载哪个插件,但插件的请求消息扩展了常见的RequestMessage类和ResponseMessage类的响应消息。因此,在这种情况下使用@XmlSeeAlso或新的上下文选项是不可行的,因为它会与正在创建和附加的插件相关联。

使用JAXB本身还有其他替代方案吗?或者我们是否必须使用任何其他JAXB替代品,如Xstream?

谢谢,
稻谷

1 个答案:

答案 0 :(得分:0)

如果在创建JAXB上下文之前插件全部可用,则可以使用类路径扫描来发现直接或间接扩展RequestMessage的类,并自动将它们包含在类列表中。