log4j configuration
ggreaves Jan 30, 2002 5:54 PMHas anybody successfully been able to configure log4j / JBoss (2.4.3) by extending a log4j class eg. Category or Filter. Whenever JBoss starts, we get the following errors:
================================
java.lang.NoClassDefFoundError: org/apache/log4j/spi/Filter
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
at java.lang.ClassLoader.loadClass(ClassLoader.java:290)
at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:120)
at org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:301)
at org.apache.log4j.xml.DOMConfigurator.parseFilters(DOMConfigurator.java:246)
at org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:178)
at org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:137)
at org.apache.log4j.xml.DOMConfigurator.parseChildrenOfCategoryElement(DOMConfigurator.java:354)
at org.apache.log4j.xml.DOMConfigurator.parseCategory(DOMConfigurator.java:310)
at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:684)
at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:586)
at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:520)
at org.apache.log4j.xml.XMLWatchdog.doOnChange(DOMConfigurator.java:718)
at org.apache.log4j.helpers.FileWatchdog.checkAndConfigure(FileWatchdog.java:80)
at org.apache.log4j.helpers.FileWatchdog.(FileWatchdog.java:49)
at org.apache.log4j.xml.XMLWatchdog.(DOMConfigurator.java:710)
at org.apache.log4j.xml.DOMConfigurator.configureAndWatch(DOMConfigurator.java:510)
at org.jboss.logging.Log4jService.start(Log4jService.java:120)
at org.jboss.logging.Log4jService.preRegister(Log4jService.java:189)
at com.sun.management.jmx.MBeanServerImpl.preRegisterInvoker(MBeanServerImpl.java:2245)
at com.sun.management.jmx.MBeanServerImpl.createMBean(MBeanServerImpl.java:765)
at javax.management.loading.MLet.getMBeansFromURL(MLet.java:540)
at javax.management.loading.MLet.getMBeansFromURL(MLet.java:369)
at org.jboss.Main.(Main.java:193)
at org.jboss.Main$1.run(Main.java:127)
at java.security.AccessController.doPrivileged(Native Method)
at org.jboss.Main.main(Main.java:123)
================================
The custom filter is in a jar and has been placed in [JBOSS]/lib/ext. This error occurs when we set a classpath entry to this jar. If no classpath entry is set, we get a different ClassNotFoundException for the new filter class we created.
Other posts on this topic lead me to believe it's a classloader problem with JBoss / log4j. Does anybody have some experience here they could share?
-Greg