How to avoid ClassCastException while using log4j.jar inside WAR in EAP6

Solution Unverified - Updated -

Issue

  • While using application level log4j we placed the "log4j.xml" file inside "$WAR_NAME/WEB-INF/classes" directory.

  • Placed "log4j.jar" file inside "$WAR_NAME/WEB-INF/lib" directory, sothat the application can use it's own version of log4j.

  • In order to exclude the jboss provided "log4j.jar" we are using following kind of "$WAR_NAME/META-INF/jboss-deployment-structure.xml" file.

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
  <deployment>
    <exclusions>
        <module name="org.apache.log4j" />
    </exclusions>
  </deployment>
</jboss-deployment-structure>

Still at the time of application deployment we are seeing the following kind of Exception in JBoss EAP6.0 GA console.


18:05:41,507 ERROR [stderr] (MSC service thread 1-3) log4j:ERROR Could not create an Appender. Reported error follows. 18:05:41,509 ERROR [stderr] (MSC service thread 1-3) java.lang.ClassCastException: org.apache.log4j.DailyRollingFileAppender cannot be cast to org.apache.log4j.Appender 18:05:41,509 ERROR [stderr] (MSC service thread 1-3) at org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:248) 18:05:41,510 ERROR [stderr] (MSC service thread 1-3) at org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.java:176) 18:05:41,510 ERROR [stderr] (MSC service thread 1-3) at org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:191) 18:05:41,510 ERROR [stderr] (MSC service thread 1-3) at org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOMConfigurator.java:523) 18:05:41,510 ERROR [stderr] (MSC service thread 1-3) at org.apache.log4j.xml.DOMConfigurator.parseRoot(DOMConfigurator.java:492) 18:05:41,511 ERROR [stderr] (MSC service thread 1-3) at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:1001) 18:05:41,511 ERROR [stderr] (MSC service thread 1-3) at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:867) 18:05:41,511 ERROR [stderr] (MSC service thread 1-3) at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:794) 18:05:41,512 ERROR [stderr] (MSC service thread 1-3) at org.jboss.as.logging.LoggingConfigurationProcessor.deploy(LoggingConfigurationProcessor.java:111) 18:05:41,512 ERROR [stderr] (MSC service thread 1-3) at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:116) 18:05:41,513 ERROR [stderr] (MSC service thread 1-3) at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) 18:05:41,513 ERROR [stderr] (MSC service thread 1-3) at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) 18:05:41,513 ERROR [stderr] (MSC service thread 1-3) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 18:05:41,514 ERROR [stderr] (MSC service thread 1-3) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 18:05:41,514 ERROR [stderr] (MSC service thread 1-3) at java.lang.Thread.run(Thread.java:722)

Environment

  • Red Hat JBoss Enterprise Application Platform (EAP)
    • 6.0 GA

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.