Hi,

Till Karaf 4.1.x the endorsed libs delivered with karaf contain some servicemix 
wrapped bundles for standard javax APIs. An example for this is the Stax API 
(javax.xml.stream). These wrapped API bundles replace the implementation lookup 
mechanism provided by the JDK with one also working in an OSGi environment.

With Karaf 4.2.0 these endorsed libraries were removed (because Java 9 does not 
support endorsed libraries anymore). What is the idea how it might still be 
possible to run Karaf 4.2.x with the woodstox Stax implementation?

If you just install the woodstox-bundles as with karaf 4.1.x, you will get the 
following exception:
java.util.ServiceConfigurationError: javax.xml.stream.XMLInputFactory: Provider 
com.ctc.wstx.stax.WstxInputFactory not found
                at java.util.ServiceLoader.fail(ServiceLoader.java:239)
                at java.util.ServiceLoader.access$300(ServiceLoader.java:185)
                at 
java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:372)
                at 
java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
                at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
                at javax.xml.stream.FactoryFinder$1.run(FactoryFinder.java:353)
                at java.security.AccessController.doPrivileged(Native Method)
                at 
javax.xml.stream.FactoryFinder.findServiceProvider(FactoryFinder.java:341)
                at javax.xml.stream.FactoryFinder.find(FactoryFinder.java:313)
                at javax.xml.stream.FactoryFinder.find(FactoryFinder.java:227)
                at 
javax.xml.stream.XMLInputFactory.newFactory(XMLInputFactory.java:205)

Is there any idea how this might work? I am aware that as long as I am using 
Java 8 I might just re-introduce the stax-api bundle to lib/endorsed, but what 
are the ideas for this on Java 9?

Best regards
Stephan

Reply via email to