You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "Nick Williams (JIRA)" <ji...@apache.org> on 2014/01/28 05:35:38 UTC

[jira] [Resolved] (LOG4J2-359) Log4jServletContextListener does not work on Weblogic 12.1.1 (12c) with web-app version "2.5"

     [ https://issues.apache.org/jira/browse/LOG4J2-359?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nick Williams resolved LOG4J2-359.
----------------------------------

    Resolution: Fixed

This is fixed with r1561933. Unfortunately, WebLogic is simply not spec compliant here. There's no standard way other than {{getEffectiveMajorVersion}} to detect the Servlet version. However, a new setting being added (which will be documented) as part of a separate bug allows you to disable auto-initialization, which you can do as a work around in WebLogic with you set the Servlet version to 2.5. Meanwhile, I suggest you report this bug with {{getEffectiveMajorVersion}} to Oracle/WebLogic. I have seen others complaining about it online, but no responses from Oracle.

> Log4jServletContextListener does not work on Weblogic 12.1.1 (12c) with web-app version "2.5"
> ---------------------------------------------------------------------------------------------
>
>                 Key: LOG4J2-359
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-359
>             Project: Log4j 2
>          Issue Type: Bug
>    Affects Versions: 2.0-beta8
>            Reporter: Abhinav Shah
>            Assignee: Nick Williams
>             Fix For: 2.0-rc1
>
>         Attachments: LOG4J2-359.patch, Log4jServletContainerInitializer.java, Log4jServletContainerInitializerTest.java
>
>
> I have Weblogic 12c running. My web-app is version "2.5".
> Following is a snippet from my web.xml 
> {code:xml}
> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> 	xmlns="http://java.sun.com/xml/ns/javaee"
> 	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
> 	id="WebApp_ID" version="2.5">
> 	<display-name>pec-service</display-name>
> 	<context-param>
> 		<param-name>log4jConfiguration</param-name>
> 		<param-value>file:/C:/log4j/dev.log4j.xml</param-value>
> 	</context-param>
> 	<listener> 
> 		<listener-class>org.apache.logging.log4j.core.web.Log4jServletContextListener</listener-class> 
> 	</listener>	
> 	<filter>
> 		<filter-name>log4jServletFilter</filter-name>
> 		<filter-class>org.apache.logging.log4j.core.web.Log4jServletFilter</filter-class> 
> 	</filter>
> 	<filter-mapping>
> 		<filter-name>log4jServletFilter</filter-name> 
> 		<url-pattern>/*</url-pattern>
> 		<dispatcher>REQUEST</dispatcher>
> 		<dispatcher>FORWARD</dispatcher> 
> 		<dispatcher>INCLUDE</dispatcher>
> 		<dispatcher>ERROR</dispatcher>
> 	</filter-mapping>
> 	
> </web-app>
> {code}
> However, on my server startup I am getting the following error - 
> {code}
> <Aug 16, 2013 3:12:32 PM PDT> <Warning> <HTTP> <BEA-101162> <User defined listener org.apache.logging.log4j.core.web.Log4jServletContextListener failed: java.lang.IllegalStateException: Context destroyed before it was initialized..
> java.lang.IllegalStateException: Context destroyed before it was initialized.
> 	at org.apache.logging.log4j.core.web.Log4jServletContextListener.contextDestroyed(Log4jServletContextListener.java:51)
> 	at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:583)
> 	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> 	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
> 	at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
> 	Truncated. see log file for complete stacktrace
> > 
> <Aug 16, 2013 3:12:32 PM PDT> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID "1376691143681" for task "2". Error is: "weblogic.application.ModuleException"
> weblogic.application.ModuleException
> 	at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1708)
> 	at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:781)
> 	at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:213)
> 	at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:208)
> 	at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:35)
> 	Truncated. see log file for complete stacktrace
> Caused By: java.lang.NullPointerException
> 	at org.apache.logging.log4j.core.web.Log4jServletContainerInitializer.onStartup(Log4jServletContainerInitializer.java:44)
> 	at weblogic.servlet.internal.WebAppServletContext.initContainerInitializer(WebAppServletContext.java:1271)
> 	at weblogic.servlet.internal.WebAppServletContext.initContainerInitializers(WebAppServletContext.java:1229)
> 	at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1726)
> 	at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2740)
> 	Truncated. see log file for complete stacktrace
> > 
> <Aug 16, 2013 3:12:32 PM PDT> <Error> <Deployer> <BEA-149202> <Encountered an exception while attempting to commit the 7 task for the application "_auto_generated_ear_".> 
> <Aug 16, 2013 3:12:32 PM PDT> <Warning> <Deployer> <BEA-149004> <Failures were detected while initiating start task for application "_auto_generated_ear_".> 
> <Aug 16, 2013 3:12:32 PM PDT> <Warning> <Deployer> <BEA-149078> <Stack trace for message 149004
> weblogic.application.ModuleException
> 	at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1708)
> 	at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:781)
> 	at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:213)
> 	at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:208)
> 	at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:35)
> 	Truncated. see log file for complete stacktrace
> Caused By: java.lang.NullPointerException
> 	at org.apache.logging.log4j.core.web.Log4jServletContainerInitializer.onStartup(Log4jServletContainerInitializer.java:44)
> 	at weblogic.servlet.internal.WebAppServletContext.initContainerInitializer(WebAppServletContext.java:1271)
> 	at weblogic.servlet.internal.WebAppServletContext.initContainerInitializers(WebAppServletContext.java:1229)
> 	at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1726)
> 	at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2740)
> 	Truncated. see log file for complete stacktrace
> {code}
> If I remove the listener & the filter, it works fine.
> {color:red}
> I did some research and found that even though the web-app is version "2.5", the {code}Log4jServletContainerInitializer{code} is getting invoked. 
> {color}



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org