I’m upgrading from 4.5.2 to 7.0.3. Now my ServletContextListeners (which are declared in web.xml) are being started twice.
I’ve forced a stacktrace inside the ServletContextListener (they all have a superclass of AbstractDaemon) and I see that: - call 1 is from OpenEJB’s LightweightWebAppBuilder, and - call 2 is from Jetty’s ContextHandler. I think call 1 is a new thing since 4.6. Is there a Java EE 6 thing going on here? Do I need to turn off something in my ageing Jetty 6.1.24? Call 1: java.lang.IllegalStateException: Temporary, to help debug OpenEJB upgrade. Repeating Bookings Populater at com.goxpro.xpro.web.daemons.AbstractDaemon.contextInitialized(AbstractDaemon.java:51) at org.apache.openejb.web.LightweightWebAppBuilder$1.run(LightweightWebAppBuilder.java:191) at org.apache.openejb.web.LightweightWebAppBuilder.switchServletContextIfNeeded(LightweightWebAppBuilder.java:399) at org.apache.openejb.web.LightweightWebAppBuilder.deployWebApps(LightweightWebAppBuilder.java:188) at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:997) at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:718) at org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:596) at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:484) at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:150) at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:66) at org.apache.openejb.OpenEJB.init(OpenEJB.java:307) at org.apache.openejb.OpenEJB.init(OpenEJB.java:278) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.apache.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36) at org.apache.openejb.core.LocalInitialContextFactory.init(LocalInitialContextFactory.java:99) at org.apache.openejb.core.LocalInitialContextFactory.init(LocalInitialContextFactory.java:63) at org.apache.openejb.core.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:47) at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684) at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313) at javax.naming.InitialContext.init(InitialContext.java:244) at javax.naming.InitialContext.<init>(InitialContext.java:192) at org.mortbay.jetty.plus.naming.NamingEntry.save(NamingEntry.java:191) at org.mortbay.jetty.plus.naming.NamingEntry.<init>(NamingEntry.java:58) at org.mortbay.jetty.plus.naming.EnvEntry.<init>(EnvEntry.java:46) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at org.mortbay.xml.XmlConfiguration.newObj(XmlConfiguration.java:608) at org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:256) at org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:214) at org.mortbay.jetty.deployer.ContextDeployer.createContext(ContextDeployer.java:369) at org.mortbay.jetty.deployer.ContextDeployer.deploy(ContextDeployer.java:263) at org.mortbay.jetty.deployer.ContextDeployer.access$000(ContextDeployer.java:67) at org.mortbay.jetty.deployer.ContextDeployer$ScannerListener.fileAdded(ContextDeployer.java:89) at org.mortbay.util.Scanner.reportAddition(Scanner.java:410) at org.mortbay.util.Scanner.reportDifferences(Scanner.java:324) at org.mortbay.util.Scanner.scan(Scanner.java:280) at org.mortbay.jetty.deployer.ContextDeployer.doStart(ContextDeployer.java:327) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.Server.doStart(Server.java:201) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at com.goxpro.xpro.web.RunJetty.main(RunJetty.java:84) WARN [main] (AbstractDaemon.java:58) - Before schedule Repeating Bookings Populater WARN [main] (AbstractDaemon.java:60) - After schedule Repeating Bookings Populater Call 2: java.lang.IllegalStateException: Temporary, to help debug OpenEJB upgrade. Repeating Bookings Populater at com.goxpro.xpro.web.daemons.AbstractDaemon.contextInitialized(AbstractDaemon.java:51) at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548) at org.mortbay.jetty.servlet.Context.startContext(Context.java:136) at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) at org.mortbay.jetty.Server.doStart(Server.java:224) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at com.goxpro.xpro.web.RunJetty.main(RunJetty.java:84) WARN [main] (AbstractDaemon.java:58) - Before schedule Repeating Bookings Populater WARN [main] (AbstractDaemon.java:60) - After schedule Repeating Bookings Populater Geoff