Greetings,
I have created a sample spring-dm powered web application, which currently does nothing but displaying some static content (servicing a couple of static HTML pages).
After enabling spring-dm osgi context support in web.xml (as described in docs section 9.7 with OsgiBundleXmlWebApplicationContext etc)
I unexpectedly started getting the following error
[2010-03-29 01:28:21.708] start-signalling-1 org.springframework.web.context.ContextLoader Context initialization failed java.lang.IllegalArgumentException: bundle context should be set before refreshing the application context
at org.springframework.util.Assert.notNull(Assert.jav a:112)
at org.springframework.osgi.context.support.AbstractD elegatedExecutionApplicationContext.normalRefresh( AbstractDelegatedExecutionApplicationContext.java: 179)
at org.springframework.osgi.context.support.AbstractD elegatedExecutionApplicationContext$NoDependencies WaitRefreshExecutor.refresh(AbstractDelegatedExecu tionApplicationContext.java:89)
at org.springframework.osgi.context.support.AbstractD elegatedExecutionApplicationContext.refresh(Abstra ctDelegatedExecutionApplicationContext.java:175)
at org.springframework.web.context.ContextLoader.crea teWebApplicationContext(ContextLoader.java:261)
at org.springframework.web.context.ContextLoader.init WebApplicationContext(ContextLoader.java:192)
at org.springframework.web.context.ContextLoaderListe ner.contextInitialized(ContextLoaderListener.java: 47)
at org.apache.catalina.core.StandardContext.listenerS tart(StandardContext.java:3983)
at org.apache.catalina.core.StandardContext.start(Sta ndardContext.java:4483)
at org.apache.catalina.core.ContainerBase.addChildInt ernal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(Co ntainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(Sta ndardHost.java:526)
at com.springsource.osgi.webcontainer.tomcat.internal .TomcatServletContainer.startWebApplication(Tomcat ServletContainer.java:119)
at com.springsource.osgi.webcontainer.internal.Standa rdWebContainer$StandardWebApplication.start(Standa rdWebContainer.java:116)
at com.springsource.server.web.core.internal.WebBundl eLifecycleListener.onStarted(WebBundleLifecycleLis tener.java:130)
at com.springsource.kernel.install.artifact.internal. ArtifactStateMonitor.onStarted(ArtifactStateMonito r.java:215)
at com.springsource.kernel.install.artifact.internal. AbstractInstallArtifact.asyncStartSucceeded(Abstra ctInstallArtifact.java:281)
at com.springsource.kernel.install.artifact.internal. AbstractInstallArtifact.access$0(AbstractInstallAr tifact.java:278)
at com.springsource.kernel.install.artifact.internal. AbstractInstallArtifact$StateMonitorSignal.signalS uccessfulCompletion(AbstractInstallArtifact.java:2 31)
at com.springsource.kernel.core.internal.BundleStartT racker$1.run(BundleStartTracker.java:150)
at java.util.concurrent.ThreadPoolExecutor$Worker.run Task(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (Unknown Source)
at java.lang.Thread.run(Unknown Source)
[2010-03-29 01:28:21.716] start-signalling-1 o.a.catalina.core.ContainerBase.[Catalina].[localhost].[/sample] Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListe ner java.lang.IllegalArgumentException: bundle context should be set before refreshing the application context
at org.springframework.util.Assert.notNull(Assert.jav a:112)
at org.springframework.osgi.context.support.AbstractD elegatedExecutionApplicationContext.normalRefresh( AbstractDelegatedExecutionApplicationContext.java: 179)
at org.springframework.osgi.context.support.AbstractD elegatedExecutionApplicationContext$NoDependencies WaitRefreshExecutor.refresh(AbstractDelegatedExecu tionApplicationContext.java:89)
at org.springframework.osgi.context.support.AbstractD elegatedExecutionApplicationContext.refresh(Abstra ctDelegatedExecutionApplicationContext.java:175)
at org.springframework.web.context.ContextLoader.crea teWebApplicationContext(ContextLoader.java:261)
at org.springframework.web.context.ContextLoader.init WebApplicationContext(ContextLoader.java:192)
at org.springframework.web.context.ContextLoaderListe ner.contextInitialized(ContextLoaderListener.java: 47)
at org.apache.catalina.core.StandardContext.listenerS tart(StandardContext.java:3983)
at org.apache.catalina.core.StandardContext.start(Sta ndardContext.java:4483)
at org.apache.catalina.core.ContainerBase.addChildInt ernal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(Co ntainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(Sta ndardHost.java:526)
at com.springsource.osgi.webcontainer.tomcat.internal .TomcatServletContainer.startWebApplication(Tomcat ServletContainer.java:119)
at com.springsource.osgi.webcontainer.internal.Standa rdWebContainer$StandardWebApplication.start(Standa rdWebContainer.java:116)
at com.springsource.server.web.core.internal.WebBundl eLifecycleListener.onStarted(WebBundleLifecycleLis tener.java:130)
at com.springsource.kernel.install.artifact.internal. ArtifactStateMonitor.onStarted(ArtifactStateMonito r.java:215)
at com.springsource.kernel.install.artifact.internal. AbstractInstallArtifact.asyncStartSucceeded(Abstra ctInstallArtifact.java:281)
at com.springsource.kernel.install.artifact.internal. AbstractInstallArtifact.access$0(AbstractInstallAr tifact.java:278)
at com.springsource.kernel.install.artifact.internal. AbstractInstallArtifact$StateMonitorSignal.signalS uccessfulCompletion(AbstractInstallArtifact.java:2 31)
at com.springsource.kernel.core.internal.BundleStartT racker$1.run(BundleStartTracker.java:150)
at java.util.concurrent.ThreadPoolExecutor$Worker.run Task(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (Unknown Source)
at java.lang.Thread.run(Unknown Source)
[2010-03-29 01:28:21.716] start-signalling-1 org.apache.catalina.core.StandardContext Error listenerStart
[2010-03-29 01:28:21.716] start-signalling-1 org.apache.catalina.core.StandardContext Context [/sample] startup failed due to previous errors
[2010-03-29 01:28:21.738] start-signalling-1 com.springsource.osgi.webcontainer.internal.Standa rdWebContainer Failed to start web application at context path '/sample' com.springsource.osgi.webcontainer.core.spi.Servle tContainerException: Web application at '/sample' failed to start. Check the logs for more details.
at com.springsource.osgi.webcontainer.tomcat.internal .TomcatServletContainer.startWebApplication(Tomcat ServletContainer.java:122)
at com.springsource.osgi.webcontainer.internal.Standa rdWebContainer$StandardWebApplication.start(Standa rdWebContainer.java:116)
at com.springsource.server.web.core.internal.WebBundl eLifecycleListener.onStarted(WebBundleLifecycleLis tener.java:130)
at com.springsource.kernel.install.artifact.internal. ArtifactStateMonitor.onStarted(ArtifactStateMonito r.java:215)
at com.springsource.kernel.install.artifact.internal. AbstractInstallArtifact.asyncStartSucceeded(Abstra ctInstallArtifact.java:281)
at com.springsource.kernel.install.artifact.internal. AbstractInstallArtifact.access$0(AbstractInstallAr tifact.java:278)
at com.springsource.kernel.install.artifact.internal. AbstractInstallArtifact$StateMonitorSignal.signalS uccessfulCompletion(AbstractInstallArtifact.java:2 31)
at com.springsource.kernel.core.internal.BundleStartT racker$1.run(BundleStartTracker.java:150)
at java.util.concurrent.ThreadPoolExecutor$Worker.run Task(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (Unknown Source)
at java.lang.Thread.run(Unknown Source)
... some more exception info (less important) follow, about bundle failed to start and bundle stopping etc. but could not fit in post ...
No idea where this came from.
"bundle context should be set before refreshing the application context"?
I was hoping that the web extender is responsible for this, which by the way is installed and active (version 1.2.1, compatible, not initially existed, manually added as recommended in docs) in the dm-server 2.0.0 instance I tried to deploy the sample webapp.
Any ideas?


