I was expecting you would be working on this feature, but I really don't want to change the way I instantiate my spring context..

Could you hook in something that allows me to turn off this new feature and have it be perfectly backward compatible? Or if it finds an already instantiated Spring Context, use that without any of the fanciness you're planning?



Howard Lewis Ship wrote:
This is a change in behavior from Tapestry 5.0; it was necessary in
order to coordinate Spring and Tapestry IoC.  It is necessary to let
Tapestry initialize Spring and use Tapestry-specific subclasses of
XmlWebApplicationContext and DefaultListableBeanFactory, to hook in
the logic that allows Spring beans to use @Inject and @InjectService.

You should be fine if you just remove the ContextLoaderListener from
your web.xml.

On Mon, Dec 29, 2008 at 3:22 PM, Fernando Padilla
<f...@citizensportsinc.com> wrote:
I just tried to run with the latest tapestry-trunk, and I get this really
nasty exception :( :(

I initialize my own spring context with a ContextLoaderListener, because I
need spring outside of tapestry.  Why is tapestry attempting to create a
context?




2008-12-29 15:18:27,363 [main] ERROR org.apache.tapestry5.ioc.Registry -
Cannot initialize context because there is already a root application
context present - check whether you have multiple ContextLoader* definitions
in your web.xml!
2008-12-29 15:18:27,363 [main] ERROR org.apache.tapestry5.ioc.Registry -
Operations trace:
2008-12-29 15:18:27,364 [main] ERROR org.apache.tapestry5.ioc.Registry - [
1] Realizing service ApplicationContext
2008-12-29 15:18:27,364 [main] ERROR org.apache.tapestry5.ioc.Registry - [
2] Invoking ObjectCreator for Spring ApplicationContext
2008-12-29 15:18:27,364 [main] ERROR org.apache.tapestry5.ioc.Registry - [
3] Creating Spring ApplicationContext via ContextLoader
2008-12-29 15:18:27,365 [main] ERROR Spring.ApplicationContext -
Construction of service ApplicationContext failed: Cannot initialize context
because there is already a root application context present - check whether
you have multiple ContextLoader* definitions in your web.xml!
org.apache.tapestry5.ioc.internal.OperationException: Cannot initialize
context because there is already a root application context present - check
whether you have multiple ContextLoader* definitions in your web.xml!
       at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:74)
       at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:96)
       at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
       at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:871)
       at
org.apache.tapestry5.internal.spring.SpringModuleDef$1$2.createObject(SpringModuleDef.java:76)
       at
org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
       at
org.apache.tapestry5.ioc.internal.InvokableToRunnable.run(InvokableToRunnable.java:36)
       at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:52)
       at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:96)
       at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
       at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:871)
       at
org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
       at
org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29)
       at
org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:52)
       at
org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:56)
       at
org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60)
       at
org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
       at
org.apache.tapestry5.ioc.internal.InvokableToRunnable.run(InvokableToRunnable.java:36)
       at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:52)
       at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:96)
       at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
       at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:871)
       at
org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
       at
org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:65)
       at
$ConfigurableWebApplicationContext_11e850a8929.delegate($ConfigurableWebApplicationContext_11e850a8929.java)
       at
$ConfigurableWebApplicationContext_11e850a8929.getBeanDefinitionCount($ConfigurableWebApplicationContext_11e850a8929.java)
       at
org.apache.tapestry5.internal.spring.SpringModule$1.initializeApplication(SpringModule.java:45)
       at
$ApplicationInitializer_11e850a892a.initializeApplication($ApplicationInitializer_11e850a892a.java)
       at
org.apache.tapestry5.services.TapestryModule$37.initializeApplication(TapestryModule.java:1912)
       at
$ApplicationInitializer_11e850a892a.initializeApplication($ApplicationInitializer_11e850a892a.java)
       at
$ApplicationInitializer_11e850a8925.initializeApplication($ApplicationInitializer_11e850a8925.java)
       at
org.apache.tapestry5.services.TapestryModule$18.initializeApplication(TapestryModule.java:1043)
       at
$ServletApplicationInitializer_11e850a890f.initializeApplication($ServletApplicationInitializer_11e850a890f.java)
       at org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:91)
       at
org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
       at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
       at
org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:589)
       at org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
       at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1216)
       at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:509)
       at
org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:447)
       at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
       at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
       at org.mortbay.jetty.Server.doStart(Server.java:222)
       at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
       at runjettyrun.Bootstrap.main(Bootstrap.java:76)
Caused by: java.lang.IllegalStateException: Cannot initialize context
because there is already a root application context present - check whether
you have multiple ContextLoader* definitions in your web.xml!
       at
org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:172)
       at
org.apache.tapestry5.internal.spring.SpringModuleDef$1$2$1.invoke(SpringModuleDef.java:86)
       at
org.apache.tapestry5.ioc.internal.InvokableToRunnable.run(InvokableToRunnable.java:36)
       at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:52)
       ... 45 more

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org






---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to