hi, i working on OSGI and added apache poi lib in bundle. i am getting below error java.lang.ExceptionInInitializerError at org.apache.poi.openxml4j.opc.internal.unmarshallers.PackagePropertiesUnmarshaller.<clinit>(PackagePropertiesUnmarshaller.java:49) at org.apache.poi.openxml4j.opc.OPCPackage.init(OPCPackage.java:154) at org.apache.poi.openxml4j.opc.OPCPackage.<init>(OPCPackage.java:141) at org.apache.poi.openxml4j.opc.Package.<init>(Package.java:37) at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:65) at org.apache.poi.openxml4j.opc.OPCPackage.create(OPCPackage.java:337) at org.apache.poi.xssf.usermodel.XSSFWorkbook.newPackage(XSSFWorkbook.java:347) at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:180) at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:172) at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:143) at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:118) at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:79) . .. ... Caused by: java.lang.ClassCastException: org.dom4j.DocumentFactory cannot be cast to org.dom4j.DocumentFactory at org.dom4j.DocumentFactory.getInstance(DocumentFactory.java:97) at org.dom4j.tree.AbstractNode.<clinit>(AbstractNode.java:39) ... 127 more
Sounds like you end up with two copies of the dom4j jar somehow and OSGi mixes them up. Can you try with POI 3.11 where we have removed the dependency on dom4j?
How did you produce the OSGi bundle? From the look of it though, you're supplying an invalid Dom4j package I'd suggest re-trying with 3.11 final, we have simplified the xml dependencies there with the move to java 6
Thanks. i tried with 3.11 but it is giving me following error javax.xml.stream.XMLEventFactory.newFactory()Ljavax/xml/stream/XMLEventFactory;: java.lang.NoSuchMethodError: javax.xml.stream.XMLEventFactory.newFactory()Ljavax/xml/stream/XMLEventFactory; I am using java version 1.7.0_72 also i tried using dependency <dependency> <groupId>javax.xml.stream</groupId> <artifactId>stax-api</artifactId> <version>1.0</version> </dependency> and <dependency> <groupId>javax.xml.stream</groupId> <artifactId>stax-api</artifactId> <version>1.0.2</version> </dependency>
This now indicates mismatch/outdated XML parser interfaces/implementations, see e.g. http://stackoverflow.com/questions/26866398/nosuchmethoderror-in-main-thread-while-reading-xlsx-using-apache-poi/27754033#27754033 for some details, usually this happens if you include an old version of xml-apis or xerces in your project.
hi, i haven't include any lib other than this 2 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.11</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.11</version> </dependency> i am not sure why it is throwing error of method not found exception. i am using java version 7
also i am getting error javax.xml.stream.XMLEventFactory.newFactory()Ljavax/xml/stream/XMLEventFactory;: java.lang.NoSuchMethodError: javax.xml.stream.XMLEventFactory.newFactory()Ljavax/xml/stream/XMLEventFactory; when i add <dependency> <groupId>xml-apis</groupId> <artifactId>xml-apis</artifactId> <version>1.3.04</version> </dependency> to my pom.xml
java.lang.NoSuchMethodError: javax.xml.stream.XMLEventFactory.newFactory()Ljavax/xml/stream/XMLEventFactory; at org.apache.poi.openxml4j.opc.internal.marshallers.PackagePropertiesMarshaller.<clinit>(PackagePropertiesMarshaller.java:45) at org.apache.poi.openxml4j.opc.OPCPackage.init(OPCPackage.java:161) at org.apache.poi.openxml4j.opc.OPCPackage.<init>(OPCPackage.java:141) at org.apache.poi.openxml4j.opc.Package.<init>(Package.java:37) at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:65) at org.apache.poi.openxml4j.opc.OPCPackage.create(OPCPackage.java:337) at org.apache.poi.xssf.usermodel.XSSFWorkbook.newPackage(XSSFWorkbook.java:410) at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:217) at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:216) at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:185) at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:160) at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:135) at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:96)
I think you are now hit by one of the things described at http://poi.apache.org/faq.html#faq-N1017E, please try those suggestions and let us know if it helped.
can you please let me know what is exact jar that poi library are required. currently i had got below exception org/xml/sax/SAXException: java.lang.NoClassDefFoundError: org/xml/sax/SAXException My Pom.xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.11</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.11</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>ooxml-security</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>ooxml-schemas</artifactId> <version>1.1</version> </dependency> <dependency> <groupId>org.apache.xmlbeans</groupId> <artifactId>xmlbeans</artifactId> <version>2.4.0</version> </dependency> with Embed Transitivity as false
All dependencies are listed on the website: http://poi.apache.org/overview.html#components I'd suggest you upgrade to XMLBeans 2.6. org.xml.sax is provided by a Java 6+ JVM, see http://docs.oracle.com/javase/6/docs/api/org/xml/sax/package-summary.html . Make sure your OSGi container isn't somehow excluding that bit of the JVM
I don't think we can do much here, it seems to be a problem with the usage of multiple versions of some jars and incorrect XML libraries from some JVM versions...