【问题标题】:Unknown JAXB exception, nested exception is java.xml.bind.JAXBException, class not known to this context未知的 JAXB 异常,嵌套异常是 java.xml.bind.JAXBException,此上下文不知道类
【发布时间】: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.*包

标签: java xml spring jaxb


【解决方案1】:

从异常看来,消息类似乎没有添加到 JaxbContext 中。尝试实例化

JaxbContext.newInstance(yourMessageClassName.class)

【讨论】:

    猜你喜欢
    • 2018-12-16
    • 2021-09-19
    • 2013-10-20
    • 1970-01-01
    • 1970-01-01
    • 2011-01-24
    • 2020-10-19
    • 2021-02-10
    • 2019-03-18
    相关资源
    最近更新 更多