Mule JaxB 绑定错误 - "package" 不包含 ObjectFactory.class 或 jaxb.index
Mule JaxB binding error - "package" doesnt contain ObjectFactory.class or jaxb.index
我正在将 mule 与 maven 一起使用。我使用了 xml 对象转换器。我的模型文件带有 jaxb 注释。 JAXB 上下文引用看起来像这样 -:
mulexml:jaxb-context name="JAXB_Context" packageNames="com.xml.model" doc:name="JAXB Context"/>
我创建了一个 jaxb.index 文件,其中 JAXB 的名称注释 类 并放置在 com.xml.model 文件夹中。
但仍然显示以下异常-:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name '_muleNotificationManager': FactoryBean threw
exception on object creation; nested exception is
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'JAXB_Context': Invocation of init method
failed; nested exception is javax.xml.bind.JAXBException: Provider
com.sun.xml.bind.v2.ContextFactory could not be instantiated:
javax.xml.bind.JAXBException: "com.xml.model" doesnt contain
ObjectFactory.class or jaxb.index
- with linked exception: [javax.xml.bind.JAXBException: "com.xml.model" doesnt contain ObjectFactory.class or jaxb.index]
这适用于没有 maven 的 mule 项目。
Arup,你能检查一下包含package/classes com.xml.model.* 的zip 文件或jar 文件是否存在。这意味着该项目无法在 Maven 生成的压缩文件中看到这些内容。
我已经找到解决办法了。我们需要将 jaxb.index
文件保存在具有相同包结构的 resources
文件夹中。
我认为在使用 Maven 时,它不会从包中选取文件。它使用自己的构建方法,但在没有 Maven 的情况下使用时,构建由 Anypoint studio 自己的构建方法完成,因此它获取 jaxb 文件。
以下是我如何使用它 jaxb.index
说,所有你编组 类 像订单,客户,商家都位于包 com.common.beans
您的流程 xml Jaxb-Context 将被配置为指向该包:
在 com.common.beans 包中创建一个文件 jaxb.index,其中包含编组 类 的内容,每一行如下:
订单
客户
商家
错误应该会消失。
尽情享受吧! :)
我正在将 mule 与 maven 一起使用。我使用了 xml 对象转换器。我的模型文件带有 jaxb 注释。 JAXB 上下文引用看起来像这样 -:
mulexml:jaxb-context name="JAXB_Context" packageNames="com.xml.model" doc:name="JAXB Context"/>
我创建了一个 jaxb.index 文件,其中 JAXB 的名称注释 类 并放置在 com.xml.model 文件夹中。
但仍然显示以下异常-:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name '_muleNotificationManager': FactoryBean threw exception on object creation; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'JAXB_Context': Invocation of init method failed; nested exception is javax.xml.bind.JAXBException: Provider com.sun.xml.bind.v2.ContextFactory could not be instantiated: javax.xml.bind.JAXBException: "com.xml.model" doesnt contain ObjectFactory.class or jaxb.index - with linked exception: [javax.xml.bind.JAXBException: "com.xml.model" doesnt contain ObjectFactory.class or jaxb.index]
这适用于没有 maven 的 mule 项目。
Arup,你能检查一下包含package/classes com.xml.model.* 的zip 文件或jar 文件是否存在。这意味着该项目无法在 Maven 生成的压缩文件中看到这些内容。
我已经找到解决办法了。我们需要将 jaxb.index
文件保存在具有相同包结构的 resources
文件夹中。
我认为在使用 Maven 时,它不会从包中选取文件。它使用自己的构建方法,但在没有 Maven 的情况下使用时,构建由 Anypoint studio 自己的构建方法完成,因此它获取 jaxb 文件。
以下是我如何使用它 jaxb.index
说,所有你编组 类 像订单,客户,商家都位于包 com.common.beans
您的流程 xml Jaxb-Context 将被配置为指向该包:
在 com.common.beans 包中创建一个文件 jaxb.index,其中包含编组 类 的内容,每一行如下:
订单
客户
商家
错误应该会消失。
尽情享受吧! :)