title: java.lang.ClassCastException - Log4j
body: <p>When starting my managed server I see the following ClassCastException related to log4j in my WebLogic 12c managed server out file.   I have commons-logging-1.1.1.jar and log4j-1.2.17.jar bundled in my WAR's lib directory and no other version of those libraries there.  I also pasted the managed server log file error generated in in processing a request.  Should I be using the log4j and commons logging that comes with WebLogic 12c?  I see these in the modules directory: com.bea.core.apache.commons.logging_1.1.2.jar and com.bea.core.apache.log4j_1.2.0.0_1-2-15.jar.  I haven't had a problem with log4j and WebLogic before.</p>
  
  <p>out file:</p>
  
  <pre><code>jadomain.lang.ClassCastException: org.apache.log4j.RollingFileAppender cannot be cast to org.apache.log4j.Appender
          at org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.jadomain:248)
          at org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.jadomain:176)
          at org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.jadomain:191)
          at org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOMConfigurator.jadomain:523)
          at org.apache.log4j.xml.DOMConfigurator.parseCategory(DOMConfigurator.jadomain:436)
          at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.jadomain:1004)
          at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.jadomain:872)
          at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.jadomain:778)
          at org.apache.log4j.xml.DOMConfigurator.configure(DOMConfigurator.jadomain:906)
          at com.domain.d.app.restwrapper.ContextListener.contextInitialized(ContextListener.jadomain:37)
          at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.jadomain:66
  </code></pre>
  
  <p>log file:</p>
  
  <pre><code>]] Root cause of ServletException.
  jadomain.lang.LinkageError: loader constraint violation: when resolving method "org.apache.log4j.LogMF.entering(Lorg/apache/log4j/Logger;Ljadomain/lang/String;Ljadomain/lang/String;)V" the class loader (instance of weblogic/utils/classloaders/ChangeAwareClassLoader) of the current class, com/domain/d/app/restwrapper/appResource, and the class loader (instance of weblogic/utils/classloaders/GenericClassLoader) for resolved class, org/apache/log4j/LogMF, have different Class objects for the type /lang/String;)V used in the signature
          at com.domain.d.app.restwrapper.appResource.addQuery(appResource.jadomain:244)
          at com.domain.d.app.restwrapper.appResource.addQuery(appResource.jadomain:224)
          at com.domain.d.app.restwrapper.appResource$Proxy$_$$_WeldClientProxy.addQuery(appResource$Proxy$_$$_WeldClientProxy.jadomain)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jadomain:57)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jadomain:43)
  </code></pre>