Does that configuration mean that you can't inject T5 IoC services into
spring?

On Tue, Mar 17, 2009 at 3:47 PM, Anthony Schexnaildre <apsch...@gmail.com>wrote:

> Thank you.
>
> -Anthony
>
>
> On Mar 17, 2009, at 10:36 AM, Andy Pahne wrote:
>
>
>> I think the reason is: the context is iniitialized twice. Once by the
>> filter you defined in your web.xml and once by tapestry-spring.
>>
>> If you prefer tapestry-spring NOT initializing your context, then add this
>> to your web.xml
>>
>>  <!-- tapestry-spring should not initialize spring context, we have a
>> filter for that -->
>>  <context-param>
>>     <param-name>tapestry.use-external-spring-context</param-name>
>>     <param-value>true</param-value>
>>  </context-param>
>>
>>
>>
>>
>> Anthony Schexnaildre schrieb:
>>
>>> From my reading it seems Tap 5.1 is supposed to be backwards compatible
>>> with 5.0.18 but not quite there yet. I am running Tapestry in the same
>>> webapp as RestEasy. I am creating a root spring context that both resteasy
>>> and tapestry share. I just added 5.1 to try it out and I get an exception on
>>> jetty start up.
>>>
>>> Caused by: 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.invoke(OperationTrackerImpl.java:90)
>>>   at
>>> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
>>>   at
>>> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:939)
>>>   at
>>> org.apache.tapestry5.internal.spring.SpringModuleDef$3.createObject(SpringModuleDef.java:166)
>>>   at
>>> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
>>>   at
>>> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:68)
>>>   at
>>> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
>>>   at
>>> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:939)
>>>   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.AdvisorStackBuilder.createObject(AdvisorStackBuilder.java:60)
>>>   at
>>> org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:52)
>>>   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.OperationTrackerImpl.invoke(OperationTrackerImpl.java:68)
>>>   at
>>> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
>>>   at
>>> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:939)
>>>   at
>>> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
>>>   at
>>> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:65)
>>>   ... 54 more
>>> 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:182)
>>>   at
>>> org.apache.tapestry5.internal.spring.SpringModuleDef$3$1.invoke(SpringModuleDef.java:176)
>>>   at
>>> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:68)
>>>   ... 73 more
>>> 2009-03-17 10:15:13.154::INFO:  Started selectchannelconnec...@0.0.0.0
>>> :8080
>>>
>>>
>>> web.xml:
>>>
>>>
>>> <web-app>
>>>
>>>   <display-name>PaymentObjects Webservices</display-name>
>>>       <context-param>
>>>       <param-name>resteasy.servlet.mapping.prefix</param-name>
>>>       <param-value>/ws</param-value>
>>>   </context-param>
>>>
>>>   <context-param>
>>>       <!--
>>>           The only significant configuration for Tapestry 5, this informs
>>>           Tapestry of where to look for pages, components and mixins.
>>>       -->
>>>       <param-name>tapestry.app-package</param-name>
>>>       <param-value>com.paymentobjects.webservices.site</param-value>
>>>   </context-param>
>>>
>>>   <context-param>
>>>       <param-name>contextConfigLocation</param-name>
>>>       <param-value>classpath:webservices-client-context.xml
>>> classpath:webservices-context.xml</param-value>
>>>   </context-param>
>>>
>>>   <context-param>
>>>       <param-name>locatorFactorySelector</param-name>
>>>       <param-value>classpath:rootContext.xml</param-value>
>>>   </context-param>
>>>
>>>   <context-param>
>>>       <param-name>parentContextKey</param-name>
>>>       <param-value>ROOT_CONTEXT_KEY</param-value>
>>>   </context-param>
>>>
>>>   <filter>
>>>       <filter-name>springSecurityFilterChain</filter-name>
>>>
>>> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
>>>   </filter>
>>>
>>>   <filter>
>>>       <filter-name>app</filter-name>
>>>
>>> <filter-class>org.apache.tapestry5.spring.TapestrySpringFilter</filter-class>
>>>   </filter>
>>>
>>>   <filter-mapping>
>>>       <filter-name>springSecurityFilterChain</filter-name>
>>>       <url-pattern>/*</url-pattern>
>>>   </filter-mapping>
>>>
>>>   <filter-mapping>
>>>       <filter-name>app</filter-name>
>>>       <url-pattern>/*</url-pattern>
>>>   </filter-mapping>
>>>
>>>   <listener>
>>>
>>> <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
>>>   </listener>
>>>
>>>   <listener>
>>>
>>> <listener-class>org.jboss.resteasy.plugins.spring.SpringContextLoaderListener</listener-class>
>>>   </listener>
>>>
>>>   <listener>
>>>
>>> <listener-class>org.springframework.security.ui.session.HttpSessionEventPublisher</listener-class>
>>>   </listener>
>>>
>>>   <servlet>
>>>       <servlet-name>webservices</servlet-name>
>>>
>>> <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
>>>   </servlet>
>>>
>>>   <servlet-mapping>
>>>       <servlet-name>webservices</servlet-name>
>>>       <url-pattern>/ws/*</url-pattern>
>>>   </servlet-mapping>
>>>
>>> </web-app>
>>>
>>>
>>>
>>>
>>> -Anthony
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>
>>
>

Reply via email to