Java log4j:在Tomcat7中部署war时,错误无法创建自定义追加器

Java log4j:在Tomcat7中部署war时,错误无法创建自定义追加器,java,tomcat,log4j,Java,Tomcat,Log4j,我的log4j.xml中有以下标记 对于它,我使用下面的罐子 apache-log4j-extras.jar log4j.jar 当我在tomcat中部署war文件时,它给出了以下异常 log4j:错误无法创建追加器。报告的错误如下。 java.lang.ClassNotFoundException:com.test.TESTAppender 在java.net.URLClassLoader$1.run(URLClassLoader.java:366) 在java.net.URLClass

我的log4j.xml中有以下标记


对于它,我使用下面的罐子

apache-log4j-extras.jar
log4j.jar
当我在tomcat中部署war文件时,它给出了以下异常

log4j:错误无法创建追加器。报告的错误如下。
java.lang.ClassNotFoundException:com.test.TESTAppender
在java.net.URLClassLoader$1.run(URLClassLoader.java:366)
在java.net.URLClassLoader$1.run(URLClassLoader.java:355)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:354)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:425)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:358)
位于java.lang.Class.forName0(本机方法)
位于java.lang.Class.forName(Class.java:191)
位于org.apache.log4j.helpers.Loader.loadClass(Loader.java:198)
位于org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:247)
位于org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.java:176)
位于org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:191)
位于org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:284)
位于org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.java:176)
位于org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:191)
位于org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOMConfigurator.java:523)
位于org.apache.log4j.xml.DOMConfigurator.parseCategory(DOMConfigurator.java:436)
位于org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:1004)
位于org.apache.log4j.xml.domconfigure(DOMConfigurator.java:872)
位于org.apache.log4j.xml.domconfigure(DOMConfigurator.java:778)
在org.apache.log4j.helpers.OptionConverter.selectAndConfigure上(OptionConverter.java:526)
登录org.apache.log4j.LogManager(LogManager.java:127)
位于org.apache.log4j.Logger.getLogger(Logger.java:104)
位于org.apache.commons.logging.impl.Log4JLogger.getLogger(Log4JLogger.java:289)
位于org.apache.commons.logging.impl.Log4JLogger(Log4JLogger.java:109)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:526)
位于org.apache.commons.logging.impl.LogFactoryImpl.createLogFromClass(LogFactoryImpl.java:1116)
位于org.apache.commons.logging.impl.LogFactoryImpl.discoverlogimple(logfactorympl.java:914)
位于org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:604)
位于org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:336)
位于org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:310)
位于org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
位于org.springframework.web.context.ContextLoader.(ContextLoader.java:146)
位于org.springframework.web.context.ContextLoaderListener.createContextLoader(ContextLoaderListener.java:53)
位于org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:44)
位于org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5016)
位于org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5528)
位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
位于org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
位于org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
在java.util.concurrent.FutureTask.run(FutureTask.java:262)处
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
运行(Thread.java:745)
但是类TESTAppender可以通过以下路径获得/WEB-INF/classes/com/test/ 我无法理解为什么会出现这种例外


请建议。

当您将应用程序打包为WAR时,或者当您试图从IDE运行它时,或者直接从Maven等运行它时,会发生这种情况吗?@Alex当我将WAR文件复制到tomcat的webapps目录,然后启动tomcat时,会发生这种情况,我在这里没有使用Maven。也没有从IDE运行它,通过转到tomcat的bin文件夹并单击startup来启动tomcat。bati当您将应用程序打包为WAR时,或者当您试图从IDE或直接从Maven等运行它时,会发生这种情况吗?@Alex当我将WAR文件复制到tomcat的webapps目录,然后启动tomcat时,我这里没有使用maven,也没有从IDE运行它,通过转到tomcat的bin文件夹并单击startup.bat来启动tomcat