Вы должны скомпилировать этот код, используя другую версию apache poi
, которая используется сейчас во время работы. Это не может работать вообще.
Или у вас должно быть jar
s из разных apache poi
версий в вашем пути к классам. Это не поддерживается .
Как показывает ваша трассировка стека:
org.apache.poi.openxml4j.exceptions.OpenXML4JRuntimeException: ...
at org.apache.poi.openxml4j.opc.ZipPackage.saveImpl(ZipPackage.java:602)
Исключение выдается из ZipPackage.java
, строка кода 602
.
Но в версии 4.1.2
нет даже строки кода 602 в ZipPackage.java
. В apache poi 4.1.2
OpenXML4JRuntimeException
добавляется в ZipPackage. java: 552 .
Это apache poi 3.15
, где это исключение выдается в ZipPackage. java : 602 .
Таким образом, вы должны иметь poi-ooxml-3.15.jar
где-то в пути к классу при выполнении кода.
Вы можете проверить, откуда пришел ваш ZipPackage
во время работы, если вы поместите следующие строки кода где-нибудь в коде, который выполняется до того, как сгенерировано исключение:
...
ClassLoader classloader = org.apache.poi.openxml4j.opc.ZipPackage.class.getClassLoader();
java.net.URL res = classloader.getResource("org/apache/poi/openxml4j/opc/ZipPackage.class");
String path = res.getPath();
System.out.println("ZipPackage came from " + path);
...