java.lang.IllegalAccessError: class org.slf4j.LoggerFactory tried to access private field org.slf4j.impl.StaticLoggerBinder.SINGLETON

java.lang.IllegalAccessError: class org.slf4j.LoggerFactory tried to access private field org.slf4j.impl.StaticLoggerBinder.SINGLETON

我正在尝试使用 documents4j 将 MS word 转换为 PDF。 使用 java 程序,通过 cmd 编译和 运行 代码,文件生成没有问题。

然而,当我 运行 在 tomcat 上访问同一个文件时,出现以下错误:

java.lang.IllegalAccessError: class org.slf4j.LoggerFactory tried to access private field org.slf4j.impl.StaticLoggerBinder.SINGLETON (org.slf4j.LoggerFactory and org.slf4j.impl.StaticLoggerBinder are in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @573c1e91)

所有 jar 文件的版本都相同,compile/run 如之前在 cmd 中所述。

slf4j-api 1.7.28。 slf4j-log4j12 1.7.28。 slf4j-简单 1.7.28.

File wordFile = new File(FILE_NAME), target = new File(outputFile1);
IConverter converter = LocalConverter.builder().baseFolder(new File(path+"batimp"+slash))
.workerPool(20, 25, 2, TimeUnit.SECONDS)
.processTimeout(5, TimeUnit.SECONDS).build();
Future<Boolean> conversion = converter.convert(wordFile).as(DocumentType.DOCX).to(target).as(DocumentType.PDF)
.schedule();
converter.shutDown();

你能告诉我我错过了什么吗?

已放置 slf4j-jdk14-1.7.28.jar 而不是 slf4j-log4j12-1.7.28 解决了问题