Forgot to mention, I did try the JAXB version 2.1.0 that Steffan recommended.
This rippled through my application code and got to the point where it would no longer build with a versions so old of some of the dependencies. I wasn’t able to locate version 2.1.0 for all components either. Is there an example or test case using jaxb that I can follow/cargo cult? -Bruce From: Bruce Edge <bruce.e...@nextissuemedia.com> Reply-To: "users@sling.apache.org" <users@sling.apache.org> Date: Wednesday, February 4, 2015 at 8:32 AM To: "users@sling.apache.org" <users@sling.apache.org> Subject: Re: jaxb, OSGI & com.sun.xml.bind -- Cannot be resolved and overwritten by Boot Delegation >My earlier claims of success were overly optimistic. Just getting >everything to load into osgi was one hurdle, but getting jaxb running is a >completely different story. > >With the configuration mentioned below, > >g! lb | grep -i jax > 65|Active | 30|jaxb-api (2.2.11) > 66|Active | 30|Old JAXB Core (2.2.11) > > >attempting to instantiate a JAXBContext does not work, > > JAXBContext context = JAXBContext.newInstance(new Class[] >{com.nim.content.formats.folio.schema.FolioType.class}); > >(syntax modification as indicated in [1]) > >fails with a ClassCastException: > > >04.02.2015 07:32:50.136 *ERROR* [pool-6-thread-1-<main >queue>(incoming/file)] com.nim.ct.dam.ingest.jobs.ImportFileJobConsumer >Exception: java.lang.NullPointerException >java.lang.NullPointerException: null > at >javax.xml.bind.ContextFinder.handleClassCastException(ContextFinder.java:1 >2 >9) > at >javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:265) > at >javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:249) > 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 >com.nim.content.formats.folio.DefaultFolioReader.<init>(DefaultFolioReader >. >java:45) > > >Then I tried to use the jaxb-osgi package. I could not even get this to >load in sling. These were the sling import warnings on the bundle on the >com.sun.xml.bind.jaxb-osgi bundle (jaxb-osgi-2.2.11.jar) > > > >com.sun.org.apache.xml.internal.resolver -- Cannot be resolved but is not >required and overwritten by Boot Delegation >com.sun.org.apache.xml.internal.resolver.tools -- Cannot be resolved but >is not required and overwritten by Boot Delegation >com.sun.source.tree -- Cannot be resolved and overwritten by Boot >Delegation >com.sun.source.util -- Cannot be resolved and overwritten by Boot >Delegation >javax.xml.bind,version=2.2.12.b1401091041 -- Cannot be resolved but is not >required >javax.xml.bind.annotation,version=2.2.12.b1401091041 -- Cannot be resolved >but is not required >javax.xml.bind.annotation.adapters,version=2.2.12.b1401091041 -- Cannot be >resolved but is not required >javax.xml.bind.attachment,version=2.2.12.b1401091041 -- Cannot be resolved >but is not required >javax.xml.bind.helpers,version=2.2.12.b1401091041 -- Cannot be resolved >but is not required > > > >I’m a bit at a loss what to try next. > >-Bruce > > >[1] >http://blog.kusandriadi.com/problem-using-jaxb-marshallingunmarshalling-wi >t >hin-osgi-container/ > > >>Thanks for the hints Stephan. They got me going in the right direction. >> >>My problems went away after I added these to my launchpad¹s list.xml: >> >><bundle> >> <groupId>javax.xml.bind</groupId> >> <artifactId>jaxb-api</artifactId> >> <version>2.2.11</version> >></bundle> >> <bundle> >> <groupId>com.sun.xml.bind</groupId> >> <artifactId>jaxb-core</artifactId> >> <version>2.2.11</version> >> </bundle> >> >>I¹m not entirely sure what was causing the problem, but there seems to be >>some inconsistency in module naming in this area. >> >> >>With the above bundles specified, the felix console bundles now include: >> >>Old JAXB Core com.sun.xml.bind.jaxb-core 2.2.11 Active >>jaxb-api jaxb-api 2.2.11 Active >> >> >>Manually forcing these to load at launchpad start time satisfied the >>later >>bundle load-time dependencies. >> >>-Bruce >> >> >>>the packages javax.xml.bind.* are part of the java runtime (at least for >>>the newer JDKs 7 and up), but not exported by the OSGi system bundle by >>>default. >>> >>>if not done already please install the bundle >>>org.apache.sling:org.apache.sling.fragment.xml:1.0.2 and restart the >>>instance, this extends the list of exported packages of the java runtime >>>for the XML-related packages. but this package currently only exports >>>JAXB version 2.1.0, can you downgrade to this version? as a rule of >>>thumb >>>you should always try to use the packages von the java runtime if they >>>are included in the version you use and install the appropriate fragment >>>bundle that extends the export list. >>> >>>packages starting with com.sun.xml are internal-only packages, are not >>>exported by the system bundle in general and should not be used. >>> >>>if you really have to update JAXB to a newer version than this can >>>become >>>cumbersome, because those libraries tend to import packages like >>>com.sun.xml which are not exported and have dependencies which might be >>>difficult to resolve. >>> >>>stefan >>> >>>> >>>>I'm running into this error trying to use jaxb in a bundle: >>>> >>>>com.sun.xml.bind -- Cannot be resolved and overwritten by Boot >>>>Delegation >>>>com.sun.xml.bind.annotation -- Cannot be resolved and overwritten by >>>>Boot >>>>Delegation >>>>javax.xml.bind,version=[2.2,3) -- Cannot be resolved >>>>javax.xml.bind.annotation,version=[2.2,3) -- Cannot be resolved >>>> >>>>I assume I need to replace the standard jaxb-core and jaxb-api with the >>>>osgi >>>>variants (jaxb-osgi and jaxb-osgi-extra?), but I haven't found the >>>>magic >>>>incantation for the maven-bundle-plugin to get this to load in sling. >>>> >>>>What is the procedure for declaring jaxb as a bundle dependency in the >>>>pom.xml? >>>> >>>>-Bruce >>>