One use of injecting Tapestry services into Spring beans would be to take
advantage of Spring's transaction management.  Or convenience features for
setting up a Quartz scheduler. Or making Tapestry services available via JMS
or SOAP or whatever.  Spring does have a rich feature set.

Some services I write need to work within a T5 app, and also from
command-line support utilities.  I tend to use just Spring for those
situations, but what if I want to include an optional (autowired) reference
to a service only available in the web application?   I wind up duplicating
service configurations.

There have been a few cases where it would have been really handy to have it
NOT MATTER where I set up the service.

I'm hoping there is some perfect solution that comes to Howard in a moment
of inspiration.  If not, supporting two libraries or at least configuration
modes would seem to be necessary.

Another 2 cents.

Jonathan

> -----Original Message-----
> From: Otho [mailto:taa...@googlemail.com]
> Sent: Saturday, January 03, 2009 10:59
> To: Tapestry users
> Subject: Re: spring context troubles
> 
> 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(Regi
> stryImpl.java:321)
> > >>>>>      at
> > >>>>>
> > >>>>>
> > >>>>>
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.jav
> a:288)
> > >>>>>      at
> > >>>>>
> > >>>>>
> > >>>>>
> >
> org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getService(ObjectLocat
> orImpl.java:39)
> > >>>>>      at
> > >>>>>
> > >>>>>
> > >>>>>
> >
> org.apache.tapestry5.internal.services.ServiceAnnotationObjectProvider.pro
> vide(ServiceAnnotationObjectProvider.java:35)
> > >>>>>      at
> > >>>>>
> > >>>>>
> > >>>>>
> >
> org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl$1.invo
> ke(MasterObjectProviderImpl.java:50)
> > >>>>>      at
> > >>>>>
> > >>>>>
> > >>>>>
> >
> org.apache.tapestry5.ioc.internal.InvokableToRunnable.run(InvokableToRunna
> ble.java:36)
> > >>>>>      at
> > >>>>>
> > >>>>>
> > >>>>>
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTracke
> rImpl.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:58
> 9)
> > >>>>>>>     at
> > >>>>>>> org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> > >>>>>>>     at
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>
> >
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:121
> 6)
> > >>>>>>>     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:58
> 9)
> > >>>>>>>     at
> > >>>>>>> org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> > >>>>>>>     at
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>
> >
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:121
> 6)
> > >>>>>>>     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(OperationTracke
> rImpl.java:74)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTra
> ckerImpl.java:96)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThre
> adOperationTracker.java:68)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:87
> 1)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.internal.spring.SpringModuleDef$1$2.createObject(Spri
> ngModuleDef.java:76)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(
> OperationTrackingObjectCreator.java:45)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.InvokableToRunnable.run(InvokableToRunna
> ble.java:36)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTracke
> rImpl.java:52)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTra
> ckerImpl.java:96)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThre
> adOperationTracker.java:68)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:87
> 1)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObj
> ect(OperationTrackingObjectCreator.java:49)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(
> SingletonServiceLifecycle.java:29)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObj
> ect(LifecycleWrappedServiceCreator.java:52)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(Int
> erceptorStackBuilder.java:56)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.cre
> ateObject(RecursiveServiceCreationCheckWrapper.java:60)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(
> OperationTrackingObjectCreator.java:45)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.InvokableToRunnable.run(InvokableToRunna
> ble.java:36)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTracke
> rImpl.java:52)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTra
> ckerImpl.java:96)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThre
> adOperationTracker.java:68)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:87
> 1)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObj
> ect(OperationTrackingObjectCreator.java:49)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createO
> bject(JustInTimeObjectCreator.java:65)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> $ConfigurableWebApplicationContext_11e850a8929.delegate($ConfigurableWebAp
> plicationContext_11e850a8929.java)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> $ConfigurableWebApplicationContext_11e850a8929.getBeanDefinitionCount($Con
> figurableWebApplicationContext_11e850a8929.java)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.internal.spring.SpringModule$1.initializeApplication(
> SpringModule.java:45)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> $ApplicationInitializer_11e850a892a.initializeApplication($ApplicationInit
> ializer_11e850a892a.java)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.services.TapestryModule$37.initializeApplication(Tape
> stryModule.java:1912)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> $ApplicationInitializer_11e850a892a.initializeApplication($ApplicationInit
> ializer_11e850a892a.java)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> $ApplicationInitializer_11e850a8925.initializeApplication($ApplicationInit
> ializer_11e850a8925.java)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.services.TapestryModule$18.initializeApplication(Tape
> stryModule.java:1043)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> $ServletApplicationInitializer_11e850a890f.initializeApplication($ServletA
> pplicationInitializer_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:58
> 9)
> > >>>>>>>>>    at
> > >>>>>>>>>
> org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:121
> 6)
> > >>>>>>>>>    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(Co
> ntextLoader.java:172)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.internal.spring.SpringModuleDef$1$2$1.invoke(SpringMo
> duleDef.java:86)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.InvokableToRunnable.run(InvokableToRunna
> ble.java:36)
> > >>>>>>>>>    at
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTracke
> rImpl.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
> >
> >


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

Reply via email to