Thanks JB/Christian. That's fixed it.
-----Original Message-----
From: Christian Schneider [mailto:[email protected]] On Behalf Of
Christian Schneider
Sent: Monday, November 23, 2015 5:55 PM
To: [email protected]
Subject: Re: Karaf not able to resolve JAXB classes.
Your exception probably means that you are missing an Import-Package header
with javax.xml.bind.
The problem might be that you declared some imports in the
maven-bundle-plugin config.
If you do not add ",*" at the end then this will turn off the automatic
Import-Package creation.
Normally it is not necessary to declare any imports. So either add the
,* or even try without a manual setting which will mean the same a "*".
Christian
On 23.11.2015 10:50, Ravi Nallappan wrote:
> Hi,
>
> One of my bundle requires jaxb library. I get following error when try
> to start the bundle.
>
> [
> Karaf 4.0.1
> Camel 2.16,
> java version "1.7.0_79"
> OpenJDK Runtime Environment (IcedTea 2.5.5)
> (7u79-2.5.5-0ubuntu0.14.04.2) OpenJDK 64-Bit Server VM (build
> 24.79-b02, mixed mode) ]
>
> ----------------------------------------------------------------------
> ------ ----------------------------------------karaf@root()>
> bundle:install -s mvn:com.acme.mediation/mobiroute/1.3.1-SNAPSHOT
> ERROR: Bundle com.acme.mediation.mobiroute [183] EventDispatcher:
> Error during dispatch. (java.lang.NoClassDefFoundError:
> javax/xml/bind/JAXBException)
> java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
> :
> :
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.ClassNotFoundException:
> javax.xml.bind.JAXBException not found by com.acme.mediation.mobihttp
[182]
> at
> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDeleg
> ation(
> BundleWiringImpl.java:1558)
> at
> org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImp
> l.java
> :79)
> at
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClas
> s(Bund
> leWiringImpl.java:1998)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
> ----------------------------------------------------------------------
> ------
> ----------------------------------------
>
> com.acme.mediation.mobihttp bundle plugin configured as :
>
----------------------------------------------------------------------------
> ---------------------------------------- <plugin>
> <groupId>org.apache.felix</groupId>
> <artifactId>maven-bundle-plugin</artifactId>
> <version>2.5.4</version>
> <extensions>true</extensions>
> <configuration>
> <instructions>
>
> <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-
> Symbol
> icName>
>
> <Bundle-Name>${project.artifactId}</Bundle-Name>
>
> <Bundle-Version>${project.version}</Bundle-Version>
> <Import-Package>
> org.apache.camel.*,
> org.apache.http.*,
> org.slf4j,
> com.acme.mediation,
>
> com.acme.mediation.bean,
>
> com.acme.mediation.exception,
>
> com.acme.mediation.helper
> </Import-Package>
> <Export-Package>
>
> com.acme.mediation.mobi.http,
>
> com.acme.mediation.mobi.http.bean
> </Export-Package>
> </instructions>
> </configuration>
> </plugin>
> ----------------------------------------------------------------------
> ------
> ----------------------------------------
> jre.properties configured as
> ----------------------------------------------------------------------
> ------
> ----------------------------------------
> # Standard package set. Note that:
> # - javax.transaction* is exported with a mandatory attribute
> jre-1.7= \
> javax.accessibility, \
> javax.activation;version="1.1", \
> javax.activity, \
> javax.annotation;version="1.0", \
> javax.annotation.processing;version="1.0", \
> javax.crypto, \
> javax.crypto.interfaces, \
> javax.crypto.spec, \
> :
> :
> javax.xml, \
> javax.xml.bind;version="2.2.1", \
> javax.xml.bind.annotation;version="2.2.1", \
> javax.xml.bind.annotation.adapters;version="2.2.1", \
> javax.xml.bind.attachment;version="2.2.1", \
> javax.xml.bind.helpers;version="2.2.1", \
> javax.xml.bind.util;version="2.2.1", \
> javax.xml.crypto, \
> :
> :
> ----------------------------------------------------------------------
> ------
> ----------------------------------------
> karaf@root()> package:exports | grep "javax.xml.bind"
> javax.xml.bind.annotation.adapters | 2.2.1 | 0 |
> org.apache.felix.framework
> javax.xml.bind.annotation | 2.2.1 | 0 |
> org.apache.felix.framework
> javax.xml.bind.attachment | 2.2.1 | 0 |
> org.apache.felix.framework
> javax.xml.bind.helpers | 2.2.1 | 0 |
> org.apache.felix.framework
> javax.xml.bind.util | 2.2.1 | 0 |
> org.apache.felix.framework
> javax.xml.bind | 2.2.1 | 0 |
> org.apache.felix.framework
> ----------------------------------------------------------------------
> ------
> ----------------------------------------
> I even tried to install jaxb manually, the issue still persists
> ----------------------------------------------------------------------
> ------ ----------------------------------------bundle:install -s
>
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/2.
> 2.1.1_2
> ----------------------------------------------------------------------
> ------
> ----------------------------------------
> I googled around, I noticed some suggestions to disable
> jre.properties's javax.xml.bind to have other implementation. In my
> case, I am fine with jre implementation for jaxb as it passes all
> Junit tests in eclipse. In fact, I don't quite understand the reason
behind disable jre's to progress further.
>
> How to resolve this? Appreciate your input in this.
>
> Thanks and regards,
> Ravi Nallappan
>
--
Christian Schneider
http://www.liquid-reality.de
Open Source Architect
http://www.talend.com