3

While trying to open Excel file from inputstream (Groovy 2.4.14 apache poi 3.17 jdk 1.8.0_92):

def myWorkBook = new XSSFWorkbook(zis)

I got error:

Caught: java.lang.LinkageError: loader constraint violation in interface itable initialization: when resolving method "org.apache.xerces.dom.NodeImpl.getChildNodes()Lorg/w3c/dom/NodeList;" the class loader (instance of org/codehaus/groovy/tools/RootLoader) of the current class, org/apache/xerces/dom/NodeImpl, and the class loader (instance of <bootloader>) for interface org/w3c/dom/Node have different Class objects for the type org/w3c/dom/NodeList used in the signature
java.lang.LinkageError: loader constraint violation in interface itable initialization: when resolving method "org.apache.xerces.dom.NodeImpl.getChildNodes()Lorg/w3c/dom/NodeList;" the class loader (instance of org/codehaus/groovy/tools/RootLoader) of the current class, org/apache/xerces/dom/NodeImpl, and the class loader (instance of <bootloader>) for interface org/w3c/dom/Node have different Class objects for the type org/w3c/dom/NodeList used in the signature
    at org.apache.xerces.parsers.AbstractDOMParser.startDocument(Unknown Source)
    at org.apache.xerces.impl.dtd.XMLDTDValidator.startDocument(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentScannerImpl.startEntity(Unknown Source)
    at org.apache.xerces.impl.XMLVersionDetector.startDocumentParsing(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    at org.apache.poi.util.DocumentHelper.readDocument(DocumentHelper.java:140)
    at org.apache.poi.openxml4j.opc.internal.ContentTypeManager.parseContentTypesFile(ContentTypeManager.java:374)
    at org.apache.poi.openxml4j.opc.internal.ContentTypeManager.<init>(ContentTypeManager.java:100)
    at org.apache.poi.openxml4j.opc.internal.ZipContentTypeManager.<init>(ZipContentTypeManager.java:54)
    at org.apache.poi.openxml4j.opc.ZipPackage.getPartsImpl(ZipPackage.java:253)
    at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:756)
    at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:327)
    at org.apache.poi.util.PackageHelper.open(PackageHelper.java:37)
    at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:295)

My classpath:

--classpath .;C:\Project\HW\Judea\PWYR_Cyfro\target\classes;C:\Project\HW\Judea\PWYR_Cyfro\lib\jira-client-0.5.jar;C:\Project\HW\Judea\PWYR_Cyfro\lib\httpclient-4.2.5.jar;C:\Project\HW\Judea\PWYR_Cyfro\lib\httpcore-4.2.4.jar;C:\Project\HW\Judea\PWYR_Cyfro\lib\commons-logging-1.1.1.jar;C:\Project\HW\Judea\PWYR_Cyfro\lib\commons-codec-1.6.jar;C:\Project\HW\Judea\PWYR_Cyfro\lib\httpmime-4.2.5.jar;C:\Project\HW\Judea\PWYR_Cyfro\lib\json-lib-2.4-jdk15.jar;C:\Project\HW\Judea\PWYR_Cyfro\lib\commons-beanutils-1.8.0.jar;C:\Project\HW\Judea\PWYR_Cyfro\lib\commons-collections-3.2.1.jar;C:\Project\HW\Judea\PWYR_Cyfro\lib\commons-lang-2.5.jar;C:\Project\HW\Judea\PWYR_Cyfro\lib\ezmorph-1.0.6.jar;C:\Project\HW\Judea\PWYR_Cyfro\lib\joda-time-2.3.jar;C:\Project\HW\Judea\PWYR_Cyfro\lib\junit-4.8.2.jar;C:\Project\HW\Judea\PWYR_Cyfro\lib\mockito-all-1.9.0.jar;C:\Project\HW\Judea\PWYR_Cyfro\lib\commons-httpclient-3.1.jar;C:\Project\HW\Judea\PWYR_Cyfro\lib\commons-io-2.5.jar;C:\Users\dev\.m2\repository\org\codehaus\groovy\modules\http-builder\http-builder\0.7.1\http-builder-0.7.1.jar;C:\Users\dev\.m2\repository\org\apache\httpcomponents\httpclient\4.2.1\httpclient-4.2.1.jar;C:\Users\dev\.m2\repository\org\apache\httpcomponents\httpcore\4.2.1\httpcore-4.2.1.jar;C:\Users\dev\.m2\repository\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar;C:\Users\dev\.m2\repository\commons-codec\commons-codec\1.6\commons-codec-1.6.jar;C:\Users\dev\.m2\repository\net\sf\json-lib\json-lib\2.3\json-lib-2.3-jdk15.jar;C:\Users\dev\.m2\repository\commons-beanutils\commons-beanutils\1.8.0\commons-beanutils-1.8.0.jar;C:\Users\dev\.m2\repository\commons-collections\commons-collections\3.2.1\commons-collections-3.2.1.jar;C:\Users\dev\.m2\repository\commons-lang\commons-lang\2.4\commons-lang-2.4.jar;C:\Users\dev\.m2\repository\net\sf\ezmorph\ezmorph\1.0.6\ezmorph-1.0.6.jar;C:\Users\dev\.m2\repository\net\sourceforge\nekohtml\nekohtml\1.9.16\nekohtml-1.9.16.jar;C:\Users\dev\.m2\repository\xerces\xercesImpl\2.9.1\xercesImpl-2.9.1.jar;C:\Users\dev\.m2\repository\xml-apis\xml-apis\1.3.04\xml-apis-1.3.04.jar;C:\Users\dev\.m2\repository\xml-resolver\xml-resolver\1.2\xml-resolver-1.2.jar;C:\Project\HW\Judea\PWYR_Cyfro\lib\eaapi.jar;C:\Project\HW\Judea\PWYR_Cyfro\lib\jacob.jar;C:\utils\groovy-2.4.14\lib\ant-1.9.4.jar;C:\utils\groovy-2.4.14\lib\ant-antlr-1.9.4.jar;C:\utils\groovy-2.4.14\lib\ant-junit-1.9.4.jar;C:\utils\groovy-2.4.14\lib\ant-launcher-1.9.4.jar;C:\utils\groovy-2.4.14\lib\bsf-2.4.0.jar;C:\utils\groovy-2.4.14\lib\commons-cli-1.2.jar;C:\utils\groovy-2.4.14\lib\commons-logging-1.2.jar;C:\utils\groovy-2.4.14\lib\gpars-1.2.1.jar;C:\utils\groovy-2.4.14\lib\groovy-2.4.14.jar;C:\utils\groovy-2.4.14\lib\groovy-ant-2.4.14.jar;C:\utils\groovy-2.4.14\lib\groovy-bsf-2.4.14.jar;C:\utils\groovy-2.4.14\lib\groovy-console-2.4.14.jar;C:\utils\groovy-2.4.14\lib\groovy-docgenerator-2.4.14.jar;C:\utils\groovy-2.4.14\lib\groovy-groovydoc-2.4.14.jar;C:\utils\groovy-2.4.14\lib\groovy-groovysh-2.4.14.jar;C:\utils\groovy-2.4.14\lib\groovy-jmx-2.4.14.jar;C:\utils\groovy-2.4.14\lib\groovy-json-2.4.14.jar;C:\utils\groovy-2.4.14\lib\groovy-jsr223-2.4.14.jar;C:\utils\groovy-2.4.14\lib\groovy-nio-2.4.14.jar;C:\utils\groovy-2.4.14\lib\groovy-servlet-2.4.14.jar;C:\utils\groovy-2.4.14\lib\groovy-sql-2.4.14.jar;C:\utils\groovy-2.4.14\lib\groovy-swing-2.4.14.jar;C:\utils\groovy-2.4.14\lib\groovy-templates-2.4.14.jar;C:\utils\groovy-2.4.14\lib\groovy-test-2.4.14.jar;C:\utils\groovy-2.4.14\lib\groovy-testng-2.4.14.jar;C:\utils\groovy-2.4.14\lib\groovy-xml-2.4.14.jar;C:\utils\groovy-2.4.14\lib\hamcrest-core-1.3.jar;C:\utils\groovy-2.4.14\lib\ivy-2.4.0.jar;C:\utils\groovy-2.4.14\lib\jansi-1.11.jar;C:\utils\groovy-2.4.14\lib\jcommander-1.47.jar;C:\utils\groovy-2.4.14\lib\jline-2.12.jar;C:\utils\groovy-2.4.14\lib\jsp-api-2.0.jar;C:\utils\groovy-2.4.14\lib\jsr166y-1.7.0.jar;C:\utils\groovy-2.4.14\lib\junit-4.12.jar;C:\utils\groovy-2.4.14\lib\multiverse-core-0.7.0.jar;C:\utils\groovy-2.4.14\lib\qdox-1.12.1.jar;C:\utils\groovy-2.4.14\lib\servlet-api-2.4.jar;C:\utils\groovy-2.4.14\lib\testng-6.8.13.jar;C:\utils\groovy-2.4.14\lib\xmlpull-1.1.3.1.jar;C:\utils\groovy-2.4.14\lib\xstream-1.4.10.jar;C:\Users\dev\.m2\repository\org\codehaus\groovy\groovy-all\2.4.14\groovy-all-2.4.14.jar;C:\Users\dev\.m2\repository\org\apache\poi\poi-ooxml\3.17\poi-ooxml-3.17.jar;C:\Users\dev\.m2\repository\com\github\virtuald\curvesapi\1.04\curvesapi-1.04.jar;C:\Users\dev\.m2\repository\org\apache\poi\poi-ooxml-schemas\3.17\poi-ooxml-schemas-3.17.jar;C:\Users\dev\.m2\repository\org\apache\xmlbeans\xmlbeans\2.6.0\xmlbeans-2.6.0.jar;C:\Users\dev\.m2\repository\org\apache\poi\poi\3.17\poi-3.17.jar;C:\Users\dev\.m2\repository\commons-codec\commons-codec\1.10\commons-codec-1.10.jar;C:\Users\dev\.m2\repository\org\apache\commons\commons-collections4\4.1\commons-collections4-4.1.jar;C:\Users\dev\.m2\repository\stax\stax\1.2.0\stax-1.2.0.jar;C:\Users\dev\.m2\repository\stax\stax-api\1.0.1\stax-api-1.0.1.jar;C:\Users\dev\.m2\repository\org\ccil\cowan\tagsoup\tagsoup\1.2\tagsoup-1.2.jar --encoding=UTF-8 C:\Project\HW\Judea\PWYR_Cyfro\src\main\java\PWYR2_JIRA_Designs-ALL.groovy

I think problem is in http-builder, but I need this dependency in my project: http-builder:jar:0.7.1 -> net.sourceforge.nekohtml:nekohtml:jar:1.9.16 -> xerces:xercesImpl:jar:2.9.1:

I think my problem is similar to httpbuilder and apache.poi.workbook maven problems

  • What other dependencies do you have in your project? Only it looks like you're pulling in a really old version of Xerces yourself – Gagravarr Mar 02 '18 at 16:10
  • I added my classpath – Adam Dabrowski Mar 05 '18 at 08:15
  • There's quite a lot there... I'd be tempted to start with just the jars POI needs + core groovy (see http://poi.apache.org/overview.html#components for what POI wants), then add the rest back one-at-a-time until it breaks to see where you're getting the old xerces from – Gagravarr Mar 05 '18 at 10:13
  • I reduced only to poi-ooxml and poi-ooxml-schemas. I'm sure that the problem is with http-builder:jar:0.7.1 which uses xerces:xercesImpl:jar:2.9.1:, but I don't know how to solve it – Adam Dabrowski Mar 05 '18 at 12:17

2 Answers2

3

Found solution excluding xerces

<dependency>
    <groupId>org.codehaus.groovy.modules.http-builder</groupId>
    <artifactId>http-builder</artifactId>
    <version>0.7.1</version>
    <exclusions>
        <exclusion>
            <groupId>xerces</groupId>
            <artifactId>xercesImpl</artifactId>
        </exclusion>
    </exclusions>
</dependency>
1

If you are using '@GrabConfig(systemClassLoader=true)` you need to remove it