Hi,

I'm feeling frustrated because like everytime I'm adventuring with XML in
an OSGi context, I end up with classloading issues, and this time is no
exception :-) So I would like to know what/how you guys are doing it...

My use case is extremely simple, yet I can't figure out what I'm doing
wrong. I need to use an XML parser to get a Document object from an XML
file. This XML parsing code is embedded inside a service (DS). The weird
thing is that If I invoke this service with a karaf command, then it works
fine. If the same code is invoked through a REST endpoint (another bundle),
then I get the following class not found:

Caused by: java.util.ServiceConfigurationError:
javax.xml.parsers.DocumentBuilderFactory: Provider
org.apache.xerces.jaxp.DocumentBuilderFactoryImpl 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)
~[?:?]


AFAIK, Karaf is pulling the servicemix implementation of Xerces, and I
doubled check that the package is available in karaf:


dms@root>exports | grep org.apache.xerces.jaxp
org.apache.xerces.jaxp.datatype
                            │ 2.11.0                             │ 348 │
org.apache.servicemix.bundles.xerces
org.apache.xerces.jaxp.validation
                            │ 2.11.0                             │ 348 │
org.apache.servicemix.bundles.xerces
org.apache.xerces.jaxp
                           │ 2.11.0                             │ 348 │
org.apache.servicemix.bundles.xerces



So, I don't know what I'm doing wrong here.

Any clue ?


Thanks,
Nicolas

Reply via email to