2016-02-09 3 views
0

Я использую mule с maven. Я использовал конвертер xml to object. Мои файлы модели аннотируются аннотациями jaxb. JAXB контекст ссылка выглядит следующим образом -:Ошибка привязки Mule JaxB - «пакет» не содержит ObjectFactory.class или jaxb.index

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: Ошибка при создании боб с именем '_muleNotificationManager': FactoryBean бросил исключение на создание объекта; вложенное исключение: org.springframework.beans.factory.BeanCreationException: Ошибка создание bean-компонента с именем «JAXB_Context»: вызов метода init не выполнен; nested exception is javax.xml.bind.JAXBException: поставщик com.sun.xml.bind.v2.ContextFactory не может быть создан: javax.xml.bind.JAXBException: «com.xml.model» не содержит ObjectFactory. класс или jaxb.index - со связанным исключением: [javax.xml.bind.JAXBException: "com.xml.model" оленья кожа содержит ObjectFactory.class или jaxb.index]

Это работает для проекта мул без maven.

ответ

1

Я нашел решение для этого. Нам нужно сохранить файл jaxb.index в папке ресурсов с той же структурой пакета. Я думаю, что при использовании maven он не выбирает файл из пакета. Он использует свои собственные методы сборки, но при использовании без maven сборка выполняется с помощью собственных методов сборки Anypoint, и поэтому она получает файл jaxb.

0

Arup, вы можете проверить, существует ли файл zip или файл jar, содержащий пакет/классы com.xml.model. *. Это означает, что проект не смог увидеть в сгенерированном сжатом файле maven.

+0

Я нашел решение для этого. Нам нужно держать jaxb.индексный файл в папке ресурсов с той же структурой пакета. Я думаю, что при использовании maven он не выбирает файл из пакета. Он использует свои собственные методы сборки, но при использовании без maven сборка выполняется с помощью собственных методов сборки Anypoint, и поэтому она получает файл jaxb. –

+0

Обычно мы используем плагин в maven для автоматического создания jaxb.index и ObjectFactory. Maven также поместит это в целевой каталог/внутри сгенерированного zip-файла. Проверьте эту ссылку: http://www.mojohaus.org/jaxb2-maven-plugin/Documentation/v2.2/example_xjc_basic.html –

0

Вот как я получил его на работу с jaxb.index

говорить, что все вы сортировочных классы, как заказ, Заказчик, купце расположены в пакете com.common.beans

  1. Ваш поток XML JAXB-Context будет настроен, указывающей на этот пакет: < mulexml: название JAXB-контекст = "JAXB_Context" packageNames = "com.common.beans" документ: имя = "JAXB контекст" />

  2. Внутри ком .common.beans package создать файл jaxb.index с содержанием ваших классов сортировочных следующим образом в каждой строке:

Заказать

Клиент

Merchant

Ошибка должна уйти.

Наслаждайтесь! :)

Смежные вопросы