[ https://issues.apache.org/jira/browse/LOG4J2-359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13742828#comment-13742828 ]
Ralph Goers commented on LOG4J2-359: ------------------------------------ Nick, Log4jServletContainerInitializer is adding Log4jServletContextListener as a listener but then appears to act as if its contextInitialized method is not going to be called. From my reading and in looking at http://svn.apache.org/repos/asf/tomcat/trunk/test/org/apache/catalina/startup/TestListener.java that doesn't appear to be the case. Shouldn't the onStartup method look like: {code} @Override public void onStartup(final Set<Class<?>> classes, final ServletContext servletContext) throws ServletException { servletContext.log("Log4jServletContainerInitializer starting up Log4j in Servlet 3.0+ environment."); servletContext.addListener(new Log4jServletContextListener()); final FilterRegistration.Dynamic filter = servletContext.addFilter("log4jServletFilter", new Log4jServletFilter()); filter.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), false, "/*"); } {code} Of course, if the user also configures the ServletContextListener in web.xml also then it will still try to initialize and destroy twice, but that can be handled pretty easily. > 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 > > 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 is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org