Mule JaxB绑定错误 - "包"不包含ObjectFactory.class或jaxb.in​​dex

时间:2016-02-09 06:21:01

标签: jaxb mule xmlconvert

我正在和maven一起使用mule。我使用了xml来对象转换器。我的模型文件使用jaxb注释进行注释。 JAXB上下文ref看起来像这样 - :

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':FactoryBean的bean时出错   对象创建异常;嵌套异常是   org.springframework.beans.factory.BeanCreationException:错误   创建名为' JAXB_Context'的bean:调用init方法   失败;嵌套异常是javax.xml.bind.JAXBException:Provider   com.sun.xml.bind.v2.ContextFactory无法实例化:   javax.xml.bind.JAXBException:" com.xml.model"不包含   ObjectFactory.class或jaxb.in​​dex     - 链接异常:[javax.xml.bind.JAXBException:" com.xml.model"不包含ObjectFactory.class或jaxb.in​​dex]

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

3 个答案:

答案 0 :(得分:2)

我找到了解决方案。我们需要将jaxb.index文件保留在具有相同包结构的resources文件夹中。

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

答案 1 :(得分:0)

Arup,您可以检查zip文件或包含包/类com.xml.model。*的jar文件是否存在。这意味着该项目无法通过maven在生成的压缩文件中查看这些内容。

答案 2 :(得分:0)

以下是我如何使用jaxb.in​​dex

说,您订购,客户,商家等所有编组类都位于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,其中包含编组类的内容,如下所示:

  3. 顺序

    客户

    商户

    错误应该消失。

    享受! :)