【发布时间】:2022-01-07 22:44:11
【问题描述】:
我已从 log4j-1.2.17 升级到 log4j-2.17.1,并进行了必要的代码更改。代码构建良好,没有错误。我在构建路径和 WEB-INF 路径中包含了正确的 jar 文件(仅 log4j-api-2.17.1.jar 和 log4j-core-2.17.1.jar)。
部署到 Tomcat 8.x 版本后,在日志文件中看到 404 错误并出现以下异常。尝试过项目清理、tomcat 清理、重建等,但没有成功。
任何指针?
提前致谢。
INFO: Starting Servlet Engine: Apache Tomcat/8.5.61
Jan 07, 2022 4:24:29 PM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Jan 07, 2022 4:24:31 PM org.apache.catalina.core.StandardContext filterStart
**SEVERE: Exception starting filter [authfilter]
java.lang.NoClassDefFoundError: Lorg/apache/log4j/Logger;**
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
at java.lang.Class.getDeclaredFields(Class.java:1916)
at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:110)
at org.apache.catalina.core.DefaultInstanceManager.populateAnnotationsCache(DefaultInstanceManager.java:403)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:173)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:151)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:106)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4538)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5181)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1412)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1402)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1358)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1180)
... 18 more
Jan 07, 2022 4:24:31 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: One or more Filters failed to start. Full details will be found in the appropriate container log file
【问题讨论】:
-
您需要使用Log4j 1.x Bridge。
标签: struct log4j log4j2 tomcat8 runtimeexception