未知的JAXB异常,嵌套异常是java.xml.bind.JAXBException,该类不为此上下文所知

时间:2017-08-26 05:24:21

标签: java xml spring jaxb

这是我第一次使用jaxb和xml编组。有一个Utils项目有基本实用程序和共享类,其他两个项目Foo和Bar依赖于Utils。我需要在Foo和Bar做的是向RabbitMQ发送消息。两个项目之间的消息是相同的。

我可以创建一个在Foo和Bar之间共享的服务,它在Utils项目中发送没有任何spring-context.xml文件的消息(我们使用的是Spring)。因为当我尝试时,我得到Unknown JAXB exception, nested exception is java.xml.bind.JAXBException, class not known to this context错误。当我查看我们团队中使用jaxb2并成功向Rabbit发送消息的其他项目时,所有这些单独的组件都会引入要在总线上发送的对象的模式,并且所有这些项目都有一个spring-context文件,并且所有那些项目有类似的东西

  <oxm:jaxb2-marshaller id="marshaller"
    context-path="com.my.awesome.proj" />

定义。即使我在Foo和Bar的sprint-context文件中定义了jaxb2-marshaller,我也会遇到这个错误。所以我基本上问的是推荐的方法是什么。大多数项目是否拉入要在总线上发送的对象的模式,然后在每个单独的项目中发送消息?感谢。

1 个答案:

答案 0 :(得分:0)

从异常中可以看出,消息类未添加到JaxbContext中。尝试实例化

JaxbContext.newInstance(yourMessageClassName.class)