2015-10-29 7 views
9

मुझे पता है कि इस सवाल को अक्सर पूछा गया है, लेकिन एक उपयुक्त समाधान नहीं मिला। जबअपाचे पीओआई पार्सिंग त्रुटि

XWPFDocument xdoc = new XWPFDocument(srcFile); 

या

XSSFWorkbook workbook = new XSSFWorkbook(srcFile); 

के साथ काम कर मैं हमेशा निम्न त्रुटि के साथ अंत:

Exception in thread "main" java.lang.IllegalAccessError: tried to access method org.apache.poi.util.POILogger.log(ILjava/lang/Object;)V from class org.apache.poi.openxml4j.opc.PackageRelationshipCollection 
    at org.apache.poi.openxml4j.opc.PackageRelationshipCollection.parseRelationshipsPart(PackageRelationshipCollection.java:313) 
    at org.apache.poi.openxml4j.opc.PackageRelationshipCollection.<init>(PackageRelationshipCollection.java:163) 
    at org.apache.poi.openxml4j.opc.PackageRelationshipCollection.<init>(PackageRelationshipCollection.java:131) 
    at org.apache.poi.openxml4j.opc.PackagePart.loadRelationships(PackagePart.java:561) 
    at org.apache.poi.openxml4j.opc.PackagePart.<init>(PackagePart.java:109) 
    at org.apache.poi.openxml4j.opc.PackagePart.<init>(PackagePart.java:80) 
    at org.apache.poi.openxml4j.opc.PackagePart.<init>(PackagePart.java:125) 
    at org.apache.poi.openxml4j.opc.ZipPackagePart.<init>(ZipPackagePart.java:78) 
    at org.apache.poi.openxml4j.opc.ZipPackage.getPartsImpl(ZipPackage.java:243) 
    at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:684) 
    at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:275) 
    at org.apache.poi.util.PackageHelper.open(PackageHelper.java:37) 
    at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:266) 

लोग PackageRelationshipCollection खोलने के लिए और फिर से प्रयास करने का सुझाव दिया है। लेकिन इससे ज्यादा मदद नहीं मिली।

इसके अलावा, मैं जार भरी हुई है:

<dependency> 
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi</artifactId> 
    <version>3.13</version> 
    <type>jar</type> 
</dependency> 
<dependency> 
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi-scratchpad</artifactId> 
    <version>3.13</version> 
    <type>jar</type> 
</dependency> 
<dependency> 
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi-ooxml</artifactId> 
    <version>3.12</version> 
    <type>jar</type> 
</dependency> 
<dependency> 
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi-ooxml-schemas</artifactId> 
    <version>3.11</version> 
    <type>jar</type> 
</dependency> 

उत्तर

32

Apache POI FAQ से:

Can I mix POI jars from different versions?

No. This is not supported.

All POI jars in use must come from the same version. A combination such as poi-3.11.jar and poi-ooxml-3.9.jar is not supported, and will fail to work in unpredictable ways.

आपका पोम 3.11, 3.12 और 3.13, से Apache POI जार पर निर्भरता है जो the FAQ explained isn't supported

के रूप में

आपको उन सभी को 3.13 होने की आवश्यकता है, फिर यह

काम करेगा

<properties> 
    <poi.version>3.13</poi.version> 
</properties> 
<dependencies> 
    <dependency> 
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi</artifactId> 
    <version>${poi.version}</version> 
    </dependency> 
    <dependency> 
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi-scratchpad</artifactId> 
    <version>${poi.version}</version> 
    </dependency> 
    <dependency> 
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi-ooxml</artifactId> 
    <version>${poi.version}</version> 
    </dependency> 
    <!-- etc as needed --> 

इस तरह, आप सुनिश्चित कर सकते हैं अपने सभी POI जार एक ही संस्करण से कर रहे हैं: 210

मैं की तरह कुछ सुझाव देंगे!

+0

सहायता के लिए धन्यवाद। वह चाल है। – beingsuplab

संबंधित मुद्दे