2016-02-09 44 views
0

我正在用maven使用mule。我使用了一個xml到對象轉換器。我的模型文件使用jaxb註釋進行註釋。在JAXB上下文裁判看起來是這樣的 - :Mule JaxB綁定錯誤 - 「包」不包含ObjectFactory.class或jaxb.in​​dex

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的扔在創建對象 除外;嵌套的異常是 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。類或jaxb.in​​dex - 帶鏈接的異常:[javax.xml.bind.JAXBException: 「com.xml.model」 犯規含有ObjectFactory.class或jaxb.in​​dex]

這對騾子項目合作沒有maven。

回答

1

我找到了解決方案。我們需要使用相同的包結構將jaxb.in​​dex文件保留在resources文件夾中。我想在使用maven時,它不會從包中選擇文件。它使用自己的構建方法,但是如果不使用maven構建,則由Anypoint studio自己的構建方法完成構建,因此它將獲取jaxb文件。

0

Arup,你可以檢查壓縮文件或包含package/classes com.xml.model。*的jar文件是否存在。這意味着該項目無法通過maven查看生成的壓縮文件中的那些文件。

+0

我找到了解決方案。我們需要保留jaxb。具有相同包結構的資源文件夾中的索引文件。我想在使用maven時,它不會從包中選擇文件。它使用自己的構建方法,但是如果不使用maven構建,則由Anypoint studio自己的構建方法完成構建,因此它將獲取jaxb文件。 –

+0

我們通常在maven中使用一個插件來自動生成jaxb.in​​dex和ObjectFactory。 Maven也會把它放到生成的zip文件的目標目錄/裏面。查看此鏈接:http://www.mojohaus.org/jaxb2-maven-plugin/Documentation/v2.2/example_xjc_basic.html –

0

這是我如何得到它與jaxb.in​​dex工作

說,你編組類,如訂單,客戶,商家都位於包com.common.beans

  1. 你流XML JAXB-上下文將被指示配置爲在該包: < mulexml:JAXB-上下文名稱= 「JAXB_Context」 packageNames = 「com.common.beans」 DOC:名稱= 「JAXB上下文」/>

  2. 內部COM .common.beans包創建您的編組類的內容的文件jaxb.in​​dex在每一行,如下所示:

訂購

客戶

商人

的錯誤應該消失。

享受! :)

相關問題