Ошибка привязки Mule JaxB - "пакет" не содержит ObjectFactory.class или jaxb.index

Я использую мула с 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: Ошибка создания бина с именем '_muleNotificationManager': FactoryBean вызвала исключение при создании объекта; вложенное исключение: org.springframework.beans.factory.BeanCreationException: ошибка создания бина с именем 'JAXB_Context': сбой вызова метода init; Вложенное исключение - javax.xml.bind.JAXBException: не удалось создать поставщик 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.

3 ответа

Решение

Я нашел решение для этого. Нам нужно сохранить jaxb.index файл в resources папка с той же структурой пакета.

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

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

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

Скажем, все ваши классы сортировки, такие как Order, Customer, Merchant, находятся в пакете com.common.beans

  1. Ваш поток XML Jaxb-Context будет настроен, указывая на этот пакет:

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

порядок

Покупатель

коммерсант

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

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

Другие вопросы по тегам