2

I want to mention that, the whole process runs absolutely fine, when I am using Java 8. But when I am trying the same process with Java 10 I am getting a big Error Message.

I know that poi 3.17 has problems with Java 10, but since https://bz.apache.org/bugzilla/show_bug.cgi?id=62187 -- the developer of poi 4 say that now it should be possible to run poi 4 with java 10, I am confused and dont know how to solve my issue?

Exception in thread "main" java.lang.NoClassDefFoundError: org/w3c/dom/ls/DocumentLS
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1009)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
    at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:801)
    at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:699)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:622)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
    at org.apache.xerces.jaxp.DocumentBuilderImpl.<init>(Unknown Source)
    at org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.setAttribute(Unknown Source)
    at org.apache.poi.ooxml.util.DocumentHelper.trySetXercesSecurityManager(DocumentHelper.java:143)
    at org.apache.poi.ooxml.util.DocumentHelper.<clinit>(DocumentHelper.java:108)
    at org.apache.poi.openxml4j.opc.internal.ContentTypeManager.parseContentTypesFile(ContentTypeManager.java:392)
    at org.apache.poi.openxml4j.opc.internal.ContentTypeManager.<init>(ContentTypeManager.java:104)
    at org.apache.poi.openxml4j.opc.internal.ZipContentTypeManager.<init>(ZipContentTypeManager.java:54)
    at org.apache.poi.openxml4j.opc.ZipPackage.getPartsImpl(ZipPackage.java:258)
    at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:725)
    at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:301)
    at org.apache.poi.xslf.usermodel.XMLSlideShow.empty(XMLSlideShow.java:118)
    at org.apache.poi.xslf.usermodel.XMLSlideShow.<init>(XMLSlideShow.java:90)
    at graphplot.TransferToPowerpoint.BuildPresentation(TransferToPowerpoint.java:202)
    at graphplot.GraphPlot.main(GraphPlot.java:139)
Caused by: java.lang.ClassNotFoundException: org.w3c.dom.ls.DocumentLS
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
    ... 23 more
4
  • 1
    Could you try adding an explicit dependency on an up to date copy of xerces, eg stackoverflow.com/a/52283380/987959 ? Commented Sep 11, 2018 at 20:01
  • I am not working with Maven. I use Intellij for my coding and adding the Libaries which I need as Jar files. Actually I make use of following Libraries: 1)poi-4.0.0 --- 2)xerces-2_12_0 --- 3)xml-commons-external-1.4.01 Commented Sep 15, 2018 at 11:30
  • @JavedWas why not use Maven? IntelliJ can use Maven poms directly as project files. Commented Oct 2, 2018 at 5:29
  • The work I am doing needs to work offline - and a couple of weeks a ago I found out, that Intellij can download Maven dependencies for offline usage. So now i also can use Maven. I hope this wil solve my problem :D - Thank you Commented May 15, 2019 at 9:43

2 Answers 2

4

I've added a dependency to xercesImpl in my Gradle setup (build.gradle) which fixes this issue:

"xerces:xercesImpl:2.12.0",

If you are using Maven, add:

<dependency>
    <groupId>xerces</groupId>
    <artifactId>xercesImpl</artifactId>
    <version>2.12.0</version>
</dependency>
Sign up to request clarification or add additional context in comments.

Comments

0

You are likely missing one of the transitive dependencies of Xerces, at least xml-apis.jar, but there are also more jar-files in the binary distribution at http://xerces.apache.org/mirrors.cgi which you might need as well.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.