Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Next challenges

Recent achievements

  • Global
  • Personal

Recognition

  • Give kudos
  • Received
  • Given

Leaderboard

  • Global

Trophy case

Kudos (beta program)

Kudos logo

You've been invited into the Kudos (beta program) private group. Chat with others in the program, or give feedback to Atlassian.

View group

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

How do i solve this Apache POI XSSFReader LinkageException? Edited

Hello,  
the exception is the following:

java.lang.LinkageError: loader constraint violation: when resolving method "org.apache.poi.xssf.eventusermodel.XSSFReader.<init>(Lorg/apache/poi/openxml4j/opc/OPCPackage;)V" the class loader (instance of org/apache/felix/framework/BundleWiringImpl$BundleClassLoader) of the current class, com/...., and the class loader (instance of org/apache/catalina/loader/ParallelWebappClassLoader) for the method's defining class, org/apache/poi/xssf/eventusermodel/XSSFReader, have different Class objects for the type org/apache/poi/openxml4j/opc/OPCPackage used in the signature

We have a support plugin, the pom.xml looks like that:

<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.15</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</exclusion>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
</exclusion>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.15</version>
<exclusions>
<exclusion>
<groupId>stax</groupId>
<artifactId>stax-api</artifactId>
</exclusion>
<exclusion>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>ooxml-schemas</artifactId>
<version>1.4</version>
</dependency>
<Export-Package>
liquibase*,
org.apache.poi.*,
org.apache.fop.*,
org.openxmlformats.schemas.spreadsheetml.*
</Export-Package>
<Import-Package>
!com.sun.javadoc,
!com.sun.tools.javadoc,
!junit.framework,
!org.apache.commons.cli,
!org.apache.batik.extension.svg,
!org.apache.fontbox.cff.charset,
!org.apache.fontbox.cff.encoding,
!org.apache.jcp.xml.dsig.internal.dom,
!org.apache.log,
!org.apache.log.format,
!org.apache.log.util,
!org.apache.poi.hslf.blip,
!org.apache.poi.hsmf,
!org.apache.poi.hsmf.datatypes,
!org.apache.poi.hsmf.extractor,
!org.apache.poi.hwpf.extractor,
!org.apache.tools.ant,
!org.apache.tools.ant.taskdefs,
!org.apache.tools.ant.types,
!org.apache.tools.ant.types.resources,
!org.apache.tools.ant.util,
!org.apache.xml.security,
!org.apache.xml.security.c14n,
!org.apache.xml.security.utils,
!org.junit,
!org.junit.internal,
!org.junit.runner,
!org.junit.runner.notification,
*;version="0.0"
</Import-Package>


The pom.xml of the actual plugin: 

<Import-Package>
...
org.apache.poi;version="0.0.0",
org.apache.poi.openxml4j.*;version="0.0.0",
*;version="0.0"
</Import-Package>


I need the XSSFReader class in order to stream-read potential large xlsx files. The exception is thrown at line: 

XSSFReader r = new XSSFReader(pkg);


XSSFReader resides in the package 

org.apache.poi.xssf.eventusermodel

If I try to use the ReadOnlySharedStringsTable which class also resides in the same package I get:

java.lang.NoClassDefFoundError: org/apache/poi/xssf/eventusermodel/ReadOnlySharedStringsTable


If I search for poi on my container I get these results: 

/var/lib/confluence/plugins-osgi-cache/felix/felix-cache/bundle228/version0.0/OfficeConnector-7.0.8.jar-embedded/META-INF/lib/poi-scratchpad-3.5-FINAL.jar

/var/lib/confluence/plugins-osgi-cache/felix/felix-cache/bundle228/version0.0/OfficeConnector-7.0.8.jar-embedded/META-INF/lib/poi-ooxml-3.5-FINAL.jar

/var/lib/confluence/plugins-osgi-cache/felix/felix-cache/bundle228/version0.0/OfficeConnector-7.0.8.jar-embedded/META-INF/lib/poi-3.5-FINAL.jar

...

The poi version 3.5-FINAL does not include the ReadOnlySharedStringsTable class, which makes me believe that at runtime somehow this older version will be used.

Please note I can use the regular poi classes (XSSFWorkbook, SXSSFWorkbook...) without any problems.

 

0 answers

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Posted in Confluence

What do you think is the most *delightful* Confluence feature? Comment for a prize!

- Create your own custom emoji 🔥 - "Shake for Feedback" on mobile 📱 - An endless supply of GIFs via GIPHY 🤩 Is there anything quite as nice as a pleasant surprise? Comment below with what...

302 views 23 8
Join discussion

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you