1

我正在使用mule和maven。我使用了 xml 到对象转换器。我的模型文件使用 jaxb 注释进行了注释。JAXB 上下文引用如下所示 -:

mulexml:jaxb-context name="JAXB_Context" packageNames="com.xml.model" doc:name="JAXB Context"/>

我创建了一个带有 JAXB 注释类名称的 jaxb.in​​dex 文件,并将其放置在 com.xml.model 文件夹中。

但它仍然显示以下异常-:

org.springframework.beans.factory.BeanCreationException:创建名为“_muleNotificationManager”的bean时出错:FactoryBean在创建对象时抛出异常;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“JAXB_Context”的 bean 时出错:调用 init 方法失败;嵌套异常是 javax.xml.bind.JAXBException:提供程序 com.sun.xml.bind.v2.ContextFactory 无法实例化:javax.xml.bind.JAXBException:“com.xml.model”不包含 ObjectFactory.class 或 jaxb .index - 带有链接异常:[javax.xml.bind.JAXBException:“com.xml.model”不包含 ObjectFactory.class 或 jaxb.in​​dex]

这适用于没有 Maven 的 mule 项目。

4

3 回答 3

2

我已经找到了解决方案。我们需要将文件保存jaxb.indexresources具有相同包结构的文件夹中。

我认为在使用Maven时,它不会从包中选择文件。它使用自己的构建方法,但在没有Maven的情况下使用时,构建是由 Anypoint 工作室自己的构建方法完成的,因此它会获取 jaxb 文件。

于 2016-04-19T12:41:33.140 回答
0

这是我如何使用 jaxb.in​​dex

比如说,您所有的编组类(如 Order、Customer、Merchant)都位于包 com.common.beans 中

  1. 您的流 xml Jaxb-Context 将被配置为指向该包: <mulexml:jaxb-context name="JAXB_Context" packageNames="com.common.beans" doc:name="JAXB Context"/>

  2. 在 com.common.beans 包中创建一个 jaxb.in​​dex 文件,其中每行包含编组类的内容,如下所示:

命令

顾客

商人

错误应该消失。

享受!:)

于 2016-08-04T14:23:58.030 回答
0

Arup,您能否检查是否存在包含 package/classes com.xml.model.* 的 zip 文件或 jar 文件。这意味着该项目无法在 maven 生成的压缩文件中看到那些。

于 2016-02-11T19:23:24.917 回答