Я использую AEM 5.6.1. Я получаю исключение из JAXB моего пакета, когда jax-b api 2.2.12 вручную устанавливается в консоли. Поскольку JAX-b (2.1.0) уже предоставляется внутри AEM с помощью следующего пакета. Это исключение не возникает, если 2.2.12 нет. Кроме того, если jax-b 2.2.12 установлен после моего пакета, никаких проблем вообще нет.Как заставить мой пакет OSGI игнорировать конфликтуемый пакет при разрешении зависимостей
Однако эта новая версия используется другой связкой, разработанной другим поставщиком. Поэтому я не могу удалить этот новый пакет из консоли felix.
Система расслоение, которая предоставляет оригинальные JAX-B 2.1.0
`<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.fragment.xml</artifactId>
<version>1.0.2</version>
</dependency>`
Мне было просто интересно, как я мог заставить мой сверток игнорировать ищет JAX-б 2.2.12 и принимать только системы по умолчанию 2.1.0 по некоторой конфигурации с использованием maven pom. В частности, в плагин maven bundle в POM.
метод Activate в моем классе ABC:
`@Activate
public void activate(ComponentContext ctx) throws JAXBException {
abcContext = JAXBContext.newInstance(ABC.class);
}`
Текущий Bundle определение пакета импорта плагин:
<Import-Package>
*;resolution:=optional
</Import-Package>
Исключение:
16.03.2016 03:13:05.709 *ERROR* [Background Update foo.barsupport-bundle (606)] foo.barsupport-bundle [foo.bar.calendar.impl.CalendarEventParserImpl] The activate method has thrown an exception (javax.xml.bind.JAXBException
- with linked exception:
[java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory not found by cqse-httpservice [25]]) javax.xml.bind.JAXBException
- with linked exception:
[java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory not found by cqse-httpservice [25]]
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:241)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:477)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:656)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:599)
at foo.bar.integration.calendar.impl.CalendarEventParserImpl.activate(CalendarEventParserImpl.java:33).
Любая помощь будет очень ценна.
Джонатан, Большое спасибо за подробное описание ситуация. – user3641136