Do you use the POI SMX bundle or do you wrap POI as private of your package ?

Regards
JB

On 08/12/2021 12:24, Richard Hierlmeier wrote:
As you can see from the stacktrace, the call to the DefaultLogBuilder is made from Apache POI.
Does this mean that Apache Poi can not be used in Karaf?

Regards

   Richard

Am Mi., 8. Dez. 2021 um 08:35 Uhr schrieb Jean-Baptiste Onofré <[email protected] <mailto:[email protected]>>:

    Hi Richard,

    Yes and no ;)

    Pax Logging "wrap" log4j classes, mostly the API, but not all classes,
    especially the one that could not work in OSGi or don't make sense with
    Pax Logging.

    Especially, in pax-logging-api, all org.apache.logging.log4j.internal
    classes (including DefaultLogBuilder) are not shipped as you are not
    supposed to use it (it's delegated to Pax Logging service).

    Regards
    JB

    On 08/12/2021 08:28, Richard Hierlmeier wrote:
     > I have in a Karaf 4.3.3 application an Excel export based on
    Apache Poi
     > 5.1.0.
     > During the export the following exception occurs:
     >
     > Caused by: java.lang.NoClassDefFoundError:
     > org/apache/logging/log4j/internal/DefaultLogBuilder
     > at
     >
    
org.apache.logging.log4j.spi.AbstractLogger$LocalLogBuilder.initialValue(AbstractLogger.java:2953)
     > at
     >
    
org.apache.logging.log4j.spi.AbstractLogger$LocalLogBuilder.initialValue(AbstractLogger.java:2945)
     > at java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:180)
     > at java.lang.ThreadLocal.get(ThreadLocal.java:170)
     > at
     >
    
org.apache.logging.log4j.spi.AbstractLogger.getLogBuilder(AbstractLogger.java:2930)
     > at
     >
    
org.apache.logging.log4j.spi.AbstractLogger.atLevel(AbstractLogger.java:2923)
     > at
     >
    org.apache.logging.log4j.spi.AbstractLogger.atWarn(AbstractLogger.java:2882)
     > at org.apache.poi.util.XMLHelper.logThrowable(XMLHelper.java:307)
     > at org.apache.poi.util.XMLHelper.trySet(XMLHelper.java:287)
     > at
     >
    org.apache.poi.util.XMLHelper.getDocumentBuilderFactory(XMLHelper.java:114)
     > at org.apache.poi.util.XMLHelper.<clinit>(XMLHelper.java:85)
     > at
     >
    
org.apache.poi.ooxml.util.DocumentHelper.newDocumentBuilder(DocumentHelper.java:47)
     > at
    org.apache.poi.ooxml.util.DocumentHelper.<clinit>(DocumentHelper.java:36)
     > at
     >
    
org.apache.poi.openxml4j.opc.internal.ContentTypeManager.save(ContentTypeManager.java:429)
     > at
    org.apache.poi.openxml4j.opc.ZipPackage.saveImpl(ZipPackage.java:554)
     > at org.apache.poi.openxml4j.opc.OPCPackage.save(OPCPackage.java:1487)
     > at org.apache.poi.ooxml.POIXMLDocument.write(POIXMLDocument.java:227)
     > at
    org.apache.poi.xssf.streaming.SXSSFWorkbook.write(SXSSFWorkbook.java:963)
     > Caused by: java.lang.ClassNotFoundException:
     > org.apache.logging.log4j.internal.DefaultLogBuilder not found by
     > org.ops4j.pax.logging.pax-logging-api [7]
     > at
     >
    
org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1565)
     > at
     >
    
org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:78)
     > at
     >
    
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1950)
     > at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
     > ... 32 more
     >
     > The org.ops4j.pax.logging.pax-logging-api bundle has no import to
     > org.apache.logging.log4j.internal.
     >
     > karaf@root()> headers 7
     > ...
     > Import-Package =
     >          org.osgi.framework;version="[1.0.0,2.0.0)",
     >          org.osgi.framework.wiring;version="[1.0.0,2.0.0)",
     >          org.osgi.util.tracker;version="[1.0.0,2.0.0)",
     >
     > org.osgi.service.event;resolution:=optional;version="[1.0.0,2.0.0)",
     >          org.osgi.service.log;version="[1.4.0,2.0.0)",
     >          org.apache.log;resolution:=optional,
     >          javax.xml.parsers,
     >          org.w3c.dom,
     >
     > org.osgi.service.log.admin;resolution:=optional;version="[1.0,2.0)",
     >
     > org.osgi.service.log.stream;resolution:=optional;version="[1.0,2.0)"
     >
     > Is this a known bug?
     >
     > Regards
     >
     >    Richard

Reply via email to