Reputation: 33
I am working on uplift project to uplift Apache 412 to latest Apache POI 5.2.2 version. Everything is working fine on local standalone program in Netbeans IDE 12.2. But when I move it to server WebLogic 14C that run on Java 8, its not working. Also it does not give any errors in the logs.
When I try to export to Excel in my Jdeveloper, I am getting the error "<incident 305 created with problem key "DFW-99998 [java.lang.NoSuchMethodError]" with Apache POI 522 JARS. The same java program is working fine in Apache POI 4.1.2 API.
I enabled verbose classloading in Jdeveloper but it does not give any POI specific errors.
-verbose:class -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:-DisplayVMOutput -XX:LogFile=C:\Record.log
I am using the below Apache POI JARS
commons-collections4-4.4.jar commons-compress-1.21.jar
commons-io-2.11.0.jar commons-math3-3.6.1.jar log4j-api-2.17.2.jar
log4j-core-2.17.2.jar poi-5.2.2.jar poi-ooxml-5.2.2.jar
poi-ooxml-full-5.2.2.jar SparseBitSet-1.2.jar xmlbeans-5.0.3.jar
In weblgic.xml I have below Configuration.
<prefer-application-packages>
<package-name>org.apache.commons.collections4.*</package-name>
<package-name>org.apache.commons.compress.*</package-name>
<package-name>org.apache.poi.*</package-name>
<package-name>org.apache.xmlbeans.*</package-name>
<package-name>org.openxmlformats.*</package-name>
<package-name>schemaorg_apache_xmlbeans.*</package-name>
<package-name>schemaorg_apache_xmlbeans.system.sXMLCONFIG.*</package-name>
<package-name>schemaorg_apache_xmlbeans.system.sXMLLANG.*</package-name>
<package-name>schemaorg_apache_xmlbeans.system.sXMLSCHEMA.*</package-name>
<package-name>schemaorg_apache_xmlbeans.system.sXMLTOOLS.*</package-name>
</prefer-application-packages>
<prefer-application-resources>
<resource-name>schemaorg_apache_xmlbeans/system/sXMLCONFIG/TypeSystemHolder.class</resource-name>
<resource-name>schemaorg_apache_xmlbeans/system/sXMLLANG/TypeSystemHolder.class</resource-name>
<resource-name>schemaorg_apache_xmlbeans/system/sXMLSCHEMA/TypeSystemHolder.class</resource-name>
<resource-name>schemaorg_apache_xmlbeans/system/sXMLTOOLS/TypeSystemHolder.class</resource-name>
</prefer-application-resources>
Do i need any add any configuration in weblogic.xml file ? please let me know. how to get more stacktrace and error information when the API fails. When i debugged this issue,below line fails and i am getting NoSuchMethodError.
**workbook = new SXSSFWorkbook(new XSSFWorkbook(), 100, true, true); - this line fails.
workbook.setCompressTempFiles(true);**
Upvotes: 2
Views: 2482
Reputation: 21
Thanks, @kevin herein is my response to the above similar problem struggled for hrs to fix this.
Create your weblogic.xml file inside WEB-INF if not present and add the below code snippet
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app
xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app">
<container-descriptor>
<prefer-web-inf-classes>false</prefer-web-inf-classes>
<prefer-application-packages>
<package-name>org.apache.commons.*</package-name>
<package-name>org.apache.poi.*</package-name>
<package-name>org.apache.xmlbeans.*</package-name>
<package-name>org.openxmlformats.*</package-name>
<package-name>schemaorg_apache_xmlbeans.*</package-name>
</prefer-application-packages>
</container-descriptor>
</weblogic-web-app>
Upvotes: 2
Reputation: 807
I found this article helpful, but there is a new dependency on IOUtils.byteArray that the answer doesn't handle. It results in this specific error because the version of commons IO that comes with WL doesn't support this method.
java.lang.NoSuchMethodError: org.apache.commons.io.IOUtils.byteArray(I)[B
Here is my modified weblogic.xml to account for that. We are on WL 14 with Java 11.
<weblogic-web-app
xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd
http://xmlns.oracle.com/weblogic/weblogic-web-app
http://xmlns.oracle.com/weblogic/weblogic-web-app/1.9/weblogic-web-app.xsd">
<context-root>xxx</context-root>
<container-descriptor>
<prefer-web-inf-classes>false</prefer-web-inf-classes>
<prefer-application-packages>
<package-name>org.apache.commons.*</package-name>
<package-name>org.apache.poi.*</package-name>
<package-name>org.apache.xmlbeans.*</package-name>
<package-name>org.openxmlformats.*</package-name>
<package-name>schemaorg_apache_xmlbeans.*</package-name>
</prefer-application-packages>
<prefer-application-resources>
<resource-name>schemaorg_apache_xmlbeans/system/sXMLCONFIG/TypeSystemHolder.class</resource-name>
<resource-name>schemaorg_apache_xmlbeans/system/sXMLLANG/TypeSystemHolder.class</resource-name>
<resource-name>schemaorg_apache_xmlbeans/system/sXMLSCHEMA/TypeSystemHolder.class</resource-name>
<resource-name>schemaorg_apache_xmlbeans/system/sXMLTOOLS/TypeSystemHolder.class</resource-name>
</prefer-application-resources>
</container-descriptor>
<description>xxx</description>
<weblogic-version>14.1.1</weblogic-version>
</weblogic-web-app>
Upvotes: 3