我正在和maven一起使用mule。我使用了xml来对象转换器。我的模型文件使用jaxb注释进行注释。 JAXB上下文ref看起来像这样 - :
mulexml:jaxb-context name="JAXB_Context" packageNames="com.xml.model" doc:name="JAXB Context"/>
我创建了一个带有JAXB注释类名称的jaxb.index文件,并放在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.index - 链接异常:[javax.xml.bind.JAXBException:" com.xml.model"不包含ObjectFactory.class或jaxb.index]
这适用于没有maven的mule项目。
答案 0 :(得分:2)
我找到了解决方案。我们需要将jaxb.index
文件保留在具有相同包结构的resources
文件夹中。
我认为在使用 Maven 时,它不会从包中选择文件。它使用自己的构建方法,但在没有 Maven 的情况下使用时,构建由Anypoint studio自己的构建方法完成,因此它获取jaxb文件。
答案 1 :(得分:0)
Arup,您可以检查zip文件或包含包/类com.xml.model。*的jar文件是否存在。这意味着该项目无法通过maven在生成的压缩文件中查看这些内容。
答案 2 :(得分:0)
以下是我如何使用jaxb.index
说,您订购,客户,商家等所有编组类都位于com.common.beans包中
您的流xml Jaxb-Context将配置为指向该包: < mulexml:jaxb-context name =“JAXB_Context”packageNames =“com.common.beans”doc:name =“JAXB Context”/>
在com.common.beans包中创建一个文件jaxb.index,其中包含编组类的内容,如下所示:
顺序
客户
商户
错误应该消失。
享受! :)