Hmm, the question is, how important it is to inject Tapestry IOC services into Spring beans compared to just being able to use the Spring beans as usual.
I would think the latter option is much less effort overall. If I want to inject something into a spring bean I have to define it as a bean and wire it up as usual. And I can use it in Tapestry just like a service. I can't really think of a scenario where it would really be needed to @Inject something into a spring bean. Sure it would be nice to have, but if I have to mix different versions of Tapestry libraries for that it is probably not worth it. Just my 2cts I guess it is mainly for the Web Flow integration, but if the price is, that 2009/1/2 Howard Lewis Ship <hls...@gmail.com> > Seems like I'm faced with two evils: breaking compatibility on the one > hand, maintaining two different sets of Spring integration on the > other. > > On Fri, Jan 2, 2009 at 10:50 AM, Fernando Padilla <f...@alum.mit.edu> > wrote: > > That's alright to keep them separate, but I'm just worried that the > 5.0.18 > > will stop working at some point.. > > > > That is why I proposed that you should really have two different > pacakges.. > > one for each direction of integration, and people can explicitly choose > > which one to use. It just seems kind of brittle saying never to upgrade > > your spring package, that strategy will fail at some point, and could > just > > confuse people in the interim... > > > > Howard Lewis Ship wrote: > >> > >> Actually, I'm liking the idea that compatibility on this comes from > >> continuing to use the old version of tapestry-spring. I haven't found > >> a way to do both: allow injection of Tapestry services into Spring > >> beans and expose Spring beans as Tapestry services. The lifecycles of > >> the two containers do not mesh easily. > >> > >> On Thu, Jan 1, 2009 at 3:23 PM, Fernando Padilla <f...@alum.mit.edu> > >> wrote: > >>> > >>> nice work around. but I want to make sure, this will be a temporary > work > >>> around until you get the latest spring module working as you desire, > with > >>> two-way integration?? > >>> > >>> Howard Lewis Ship wrote: > >>>> > >>>> I think the best option for you is to use Tapestry 5.1, but revert > >>>> tapestry-spring to 5.0.18. This allows you to benefit from the > >>>> improvements to tapestry-core without having any compatibility > >>>> problems with the changes to tapestry-spring. I'm adding documentation > >>>> to the web site to explain this. > >>>> > >>>> On Mon, Dec 29, 2008 at 4:20 PM, Fernando Padilla <f...@alum.mit.edu> > >>>> wrote: > >>>>> > >>>>> I'm sorry that I'm hammering on this code, while it's still probably > a > >>>>> work > >>>>> in progress.. (always available through im) > >>>>> > >>>>> but I commented out the spring ContextLoaderListener, moved the > filter > >>>>> up > >>>>> to > >>>>> be first, and this seems to initialize properly at least for Jetty > >>>>> (within > >>>>> eclipse). The next issue, it looks like it did not register the > spring > >>>>> beans in the TapestryIoC.. so now I'm getting exceptions saying that > it > >>>>> can't find particular beans: > >>>>> > >>>>> > >>>>> .... > >>>>> Caused by: java.lang.RuntimeException: Service id > >>>>> 'common-conf-properties' > >>>>> is not defined by any module. Defined services: > >>>>> ActionRenderResponseGenerator, AjaxComponentEventRequestHandler, > >>>>> AjaxComponentEventResultProcessor, AjaxPartialResponseRenderer, > Alias, > >>>>> AliasOverrides, AppSubscriptionHandler, ApplicationContext, > >>>>> ApplicationDefaults, ApplicationGlobals, ApplicationInitializer, > >>>>> ApplicationStateManager, ApplicationStatePersistenceStrategySource, > >>>>> AspectDecorator, AssetBindingFactory, AssetObjectProvider, > AssetSource, > >>>>> BaseURLSource, BeanBlockOverrideSource, BeanBlockSource, > >>>>> BeanModelSource, > >>>>> BindingSource, ChainBuilder, ClassNameLocator, > >>>>> ClasspathAssetAliasManager, > >>>>> ClasspathAssetFactory, ClasspathURLConverter, > >>>>> ClientPersistentFieldStorage, > >>>>> ClientPersistentFieldStrategy, ComponentClassCache, > >>>>> ComponentClassFactory, > >>>>> ComponentClassResolver, ComponentClassTransformWorker, > >>>>> ComponentClassTransformer, ComponentClassesInvalidationEventHub, > >>>>> ComponentDefaultProvider, ComponentEventRequestHandler, > >>>>> ComponentEventResultProcessor, ComponentInstanceResultProcessor, > >>>>> ComponentInstantiatorSource, ComponentInvocationMap, > >>>>> ComponentMessagesInvalidationEventHub, ComponentMessagesSource, > >>>>> ComponentPageElementResourcesSource, ComponentSource, > >>>>> ComponentTemplateSource, ComponentTemplatesInvalidationEventHub, > >>>>> Context, > >>>>> ContextAssetFactory, ContextPathEncoder, ContextValueEncoder, > >>>>> CookieSink, > >>>>> CookieSource, Cookies, CtClassSource, DataTypeAnalyzer, > >>>>> DefaultDataTypeAnalyzer, DefaultFileItemFactory, > >>>>> DefaultImplementationBuilder, EndOfRequestListenerHub, Environment, > >>>>> EnvironmentalShadowBuilder, ExceptionAnalyzer, ExceptionTracker, > >>>>> FacebookAuthFilterImpl, FactoryDefaults, FbForceModeFilter, > >>>>> FieldTranslatorSource, FieldValidationSupport, > >>>>> FieldValidatorDefaultSource, > >>>>> FieldValidatorSource, FormSupport, HiddenFieldLocationRules, > >>>>> HttpServletRequest, HttpServletRequestHandler, IgnoredPathsFilter, > >>>>> InjectionProvider, InternalRequestGlobals, LinkCreationHub, > >>>>> LinkFactory, > >>>>> LocalizationSetter, LocationRenderer, LoggingDecorator, > MarkupRenderer, > >>>>> MarkupWriterFactory, MasterDispatcher, MasterObjectProvider, > >>>>> MessageBindingFactory, MetaDataLocator, MultipartDecoder, > >>>>> NullFieldStrategyBindingFactory, NullFieldStrategySource, > >>>>> ObjectRenderer, > >>>>> OsForceTypeFilter, PageActivationContextCollector, > >>>>> PageContentTypeAnalyzer, > >>>>> PageDocumentGenerator, PageElementFactory, PageLoader, > >>>>> PageMarkupRenderer, > >>>>> PagePool, PageRenderQueue, PageRenderRequestHandler, > >>>>> PageResponseRenderer, > >>>>> PageTemplateLocator, PartialMarkupRenderer, PersistentFieldManager, > >>>>> PersistentLocale, PipelineBuilder, PropBindingFactory, > PropertyAccess, > >>>>> PropertyConduitSource, PropertyShadowBuilder, RegistryStartup, > >>>>> RenderSupport, Request, RequestExceptionHandler, RequestGlobals, > >>>>> RequestHandler, RequestLogFilter, RequestPageCache, > >>>>> RequestPathOptimizer, > >>>>> RequestSecurityManager, ResourceCache, ResourceDigestGenerator, > >>>>> ResourceStreamer, Response, ResponseRenderer, ServiceLifecycleSource, > >>>>> ServletApplicationInitializer, > >>>>> SessionApplicationStatePersistenceStrategy, > >>>>> StrategyBuilder, SymbolSource, TemplateParser, ThreadLocale, > >>>>> TranslateBindingFactory, TranslatorSource, TypeCoercer, URLEncoder, > >>>>> UpdateListenerHub, ValidateBindingFactory, > >>>>> ValidationConstraintGenerator, > >>>>> ValidationMessagesSource, ValueEncoderSource. > >>>>> at > >>>>> > >>>>> > >>>>> > org.apache.tapestry5.ioc.internal.RegistryImpl.locateModuleForService(RegistryImpl.java:321) > >>>>> at > >>>>> > >>>>> > >>>>> > org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:288) > >>>>> at > >>>>> > >>>>> > >>>>> > org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getService(ObjectLocatorImpl.java:39) > >>>>> at > >>>>> > >>>>> > >>>>> > org.apache.tapestry5.internal.services.ServiceAnnotationObjectProvider.provide(ServiceAnnotationObjectProvider.java:35) > >>>>> at > >>>>> > >>>>> > >>>>> > org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl$1.invoke(MasterObjectProviderImpl.java:50) > >>>>> at > >>>>> > >>>>> > >>>>> > org.apache.tapestry5.ioc.internal.InvokableToRunnable.run(InvokableToRunnable.java:36) > >>>>> at > >>>>> > >>>>> > >>>>> > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:52) > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> Howard Lewis Ship wrote: > >>>>>> > >>>>>> We need to figure out the order that the filters are initialized, so > >>>>>> that the Tapestry filter can be initialized first. I think just > >>>>>> listing it first in the web.xml may do the trick. > >>>>>> > >>>>>> On Mon, Dec 29, 2008 at 4:00 PM, Fernando Padilla < > f...@alum.mit.edu> > >>>>>> wrote: > >>>>>>> > >>>>>>> I just tried it, and it won't work like that :( > >>>>>>> > >>>>>>> Like I said, I use spring outside of tapestry. So I need a valid > >>>>>>> working > >>>>>>> spring context before the first request ever gets to tapestry > >>>>>>> filter.. > >>>>>>> > >>>>>>> Here is my exception when I comment out the normal > >>>>>>> ContextLoaderListener.. > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> [Console output redirected to > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > file:/local/fern/work/social-app-repository/trunk/fanwars/site/../../log.txt] > >>>>>>> 2008-12-29 15:58:26,140 [main] ERROR org.mortbay.log - failed > OpenDS > >>>>>>> java.lang.NullPointerException > >>>>>>> at > >>>>>>> com.protrade.common.spring.OpenDSFilter.init(OpenDSFilter.java:28) > >>>>>>> at > >>>>>>> com.protrade.common.web.ProtradeFilter.init(ProtradeFilter.java:37) > >>>>>>> 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) > >>>>>>> 2008-12-29 15:58:26,142 [main] ERROR org.mortbay.log - Failed > startup > >>>>>>> of > >>>>>>> context > >>>>>>> org.mortbay.jetty.webapp.webappcont...@1961581{/,src/main/webapp} > >>>>>>> java.lang.NullPointerException > >>>>>>> at > >>>>>>> com.protrade.common.spring.OpenDSFilter.init(OpenDSFilter.java:28) > >>>>>>> at > >>>>>>> com.protrade.common.web.ProtradeFilter.init(ProtradeFilter.java:37) > >>>>>>> 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) > >>>>>>> > >>>>>>> > >>>>>>> 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 > >>>>>>> > >>>>>>> > >>>>>> > >>>>> --------------------------------------------------------------------- > >>>>> 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 > >>> > >>> > >> > >> > >> > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > > For additional commands, e-mail: users-h...@tapestry.apache.org > > > > > > > > -- > Howard M. Lewis Ship > > Creator Apache Tapestry and Apache HiveMind > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > >