On 10/31/22 10:10, Campbell, Lance wrote:
I just started working with POI. . I am just writing out an Excel document. I
pulled down the project using Maven for 5.2.3 .
In eclipse everything compiled fine. When I deployed the software to Tomcat I
got this error message:
Exception in thread "Thread-6" java.lang.NoSuchMethodError:
org.apache.logging.log4j.util.LoaderUtil.getClassLoaders()[Ljava/lang/ClassLoader;
The line it was failing on is the last line listed below "new XSSFWorkbook()":
XSSFWorkbook workbook = null;
//
ClassLoader classloader =
org.apache.poi.poifs.filesystem.POIFSFileSystem.class.getClassLoader();
URL res =
classloader.getResource("org/apache/poi/xssf/usermodel/XSSFWorkbook.class");
String path = res.getPath();
System.out.println("POI Core came from " + path);
//
// line with error is below
workbook = new XSSFWorkbook();
After reading some documentation I put in the code directly above the line that
was failing. The display showed that the code was found.
POI Core came
fromfile:/folder1/folder2/folder3/application/webapps/ROOT/WEB-INF/lib/poi-ooxml-5.2.2.jar!/org/apache/poi/xssf/usermodel/XSSFWorkbook.class
I tried rebuilding the project in Eclipse and also updating Maven. After
redeploying I kept getting the same error message.
I then changed the version to 5.2.2 and everything worked fine. I am wondering
if there might be an issue with 5.2.3 .
MAVEN that did NOT work:
<dependencies>
<dependency>
<groupId>webserviceslib</groupId>
<artifactId>webserviceslib</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.3</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
</dependencies>
MAVEN that does work:
<dependencies>
<dependency>
<groupId>webserviceslib</groupId>
<artifactId>webserviceslib</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.2</version>
</dependency>
</dependencies>
Thanks,
Lance Campbell
Web Services @ Public Affairs @ University of Illinois
Can you build the POI parts NOT in eclipse and deploy that. IDE are
notorious for "helping".