【发布时间】:2017-08-26 05:24:21
【问题描述】:
这是我第一次使用 jaxb 和 XML 编组。有一个 Utils 项目具有基本实用程序和共享类,另外两个项目 Foo 和 Bar 依赖于 Utils。我需要在 Foo 和 Bar 中做的是向 RabbitMQ 发送消息。两个项目之间的信息是相同的。
我能否创建一个在 Foo 和 Bar 之间共享的服务,该服务在没有任何 spring-context.xml 文件的 Utils 项目中发送消息(我们使用的是 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,我还是得到了那个错误。所以我基本上是在问推荐的方法是什么。大多数项目是否会拉入对象的模式以在总线上发送,然后在每个单独的项目中发送消息?
【问题讨论】:
-
需要从Java11+开始的外部依赖添加com.sun.xml.*包