Hi Emi, Thank you for that, the error comes from the struts2-portlet-plugin interaction with tiles2, so I gave it a quick try in case tiles 2.0.7 behaved differently, but I still get the same error, even if it comes from the BasicTilesContainer rather than Jsr168Dispatcher :
00000034 BasicTilesCon E org.apache.tiles.impl.BasicTilesContainer render Error rendering tile java.lang.IllegalStateException: Not allowed in event phase at org.apache.struts2.portlet.servlet.PortletServletResponse.isCommitted(PortletServletResponse.java:178) at org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(ServletTilesRequestContext.java:176) at org.apache.tiles.context.TilesRequestContextWrapper.dispatch(TilesRequestContextWrapper.java:72) at org.apache.struts2.tiles.StrutsTilesRequestContext.dispatch(StrutsTilesRequestContext.java:88) at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:606) at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:246) at org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:105) at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186) at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:361) [...] We are currently migrating from Websphere portal 5.1 to 7.0 and thought it would be a good opportunity to move to struts2, since we also use xworks, I guess we'll have to stick to Struts 1.3, now we know what Struts2 is not supported out of the box by IBM WPS7 :/ On Tue, May 10, 2011 at 1:43 AM, Emi Lu <em...@encs.concordia.ca> wrote: > Hello, > > If I remember struts2.2.1 cannot only be with tiles2.0.7. > > Please try tiles*-2.0.7.jar > > I had the same problem when using struts2.2.x + tiles2.2 > > Regards, > Emi > > > > > > Thank you for your answer. I would like to know if tiles work with >> struts2 >> in a portlet environment. >> This has been done countless times with struts 1.x versions, and as you >> point out (with irony I suppose), there are documentations on it. The >> thing >> is I can't seem to get it to work with struts2 >> >> I can see my portlet and the tiles are working, but after submitting the >> form I am getting the following error : >> >> Jsr168Dispatc E >> com.opensymphony.xwork2.util.logging.commons.CommonsLogger >> error Could not execute action >> >> java.lang.IllegalStateException: Not allowed in event phase at >> org.apache.struts2.portlet.servlet.PortletServletResponse.isCo >> mmitted(PortletServletResponse.java:178) >> >> Did anyone manage to deploy a struts2 portlet using tiles? >> >> On Fri, May 6, 2011 at 9:35 PM, Jason Pyeron<jpye...@pdinc.us> wrote: >> >> >>> >>> -----Original Message----- >>>> From: Bertrand [mailto:bertran...@gmail.com] >>>> Sent: Friday, May 06, 2011 2:53 >>>> To: user@struts.apache.org >>>> Subject: Re: WELCOME to user@struts.apache.org >>>> >>>> Hi, >>>> >>>> I am building a poc using Struts2 and tiles2 on Websphere portal 7.0. >>>> I created a JSR-168 portlet using struts2 quite easily, but >>>> adding tiles to the picture is not as straightforward. >>>> >>> >>> In short, tiles does not support portlets. You may want to look at this >>> (http://lmgtfy.com/?q=tiles+portlet). >>> >>> >>>> For the addition of tiles, config-wise: >>>> >>>> In web.xml, I have >>>> >>>> <listener> >>>> <listener-class>org.apache.struts2.tiles.StrutsTilesListener</ >>>> >>> listener-class> >>> >>>> </listener> >>>> >>>> In struts.xml, I have >>>> >>>> <result-types> >>>> <result-type name="tiles" >>>> class="org.apache.struts2.views.tiles.TilesResult" >>>> /> >>>> </result-types> >>>> >>>> I defined my actions using the result-type specified above, >>>> here they are: >>>> >>>> <action name="index" class="struts2Poc.HelloWorld"> <result >>>> name="SUCCESS" type="tiles">yourName</result> </action> >>>> <action name="HelloWorld" class="struts2Poc.HelloWorld"> >>>> <result name="SUCCESS" type="tiles">success</result> </action> >>>> >>>> I can see my portlet and the tiles are working, but after >>>> submitting the form I am getting the following error : >>>> >>>> [6/05/11 16:20:59:677 EST] 00000034 Jsr168Dispatc E >>>> com.opensymphony.xwork2.util.logging.commons.CommonsLogger >>>> error Could not execute action >>>> >>>> java.lang.IllegalStateException: Not allowed in event phase at >>>> org.apache.struts2.portlet.servlet.PortletServletResponse.isCo >>>> mmitted(PortletServletResponse.java:178) >>>> >>> >>> The overridden servlet response will just throw exceptions if you call >>> those >>> methods. This is because of how portlets work with regards to the view >>> rendering. >>> See: >>> >>> >>> http://www.jarvana.com/jarvana/view/org/apache/struts/struts2-portlet-plugin/2.1 >>> >>> >>> .8/struts2-portlet-plugin-2.1.8-sources.jar!/org/apache/struts2/portlet/servlet/ >>> PortletServletResponse.java?format=ok >>> >>> http://www.jcp.org/en/jsr/detail?id=168 >>> >>> at >>>> org.apache.tiles.servlet.context.ServletTilesRequestContext.di >>>> spatch(ServletTilesRequestContext.java:219) >>>> at >>>> org.apache.tiles.renderer.impl.TemplateAttributeRenderer.write >>>> (TemplateAttributeRenderer.java:44) >>>> at >>>> org.apache.tiles.renderer.impl.AbstractBaseAttributeRenderer.r >>>> ender(AbstractBaseAttributeRenderer.java:103) >>>> at >>>> org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesCon >>>> tainer.java:659) >>>> at >>>> org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesCon >>>> tainer.java:678) >>>> at >>>> org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesCon >>>> tainer.java:633) >>>> at >>>> org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesCon >>>> tainer.java:322) >>>> at >>>> org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResu >>>> lt.java:105) >>>> at >>>> org.apache.struts2.dispatcher.StrutsResultSupport.execute(Stru >>>> tsResultSupport.java:186) >>>> at >>>> com.opensymphony.xwork2.DefaultActionInvocation.executeResult( >>>> DefaultActionInvocation.java:362) >>>> at >>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(Default >>>> ActionInvocation.java:266) >>>> at >>>> com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor >>>> .doIntercept(DefaultWorkflowInterceptor.java:165) >>>> at >>>> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.in >>>> tercept(MethodFilterInterceptor.java:87) >>>> at >>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(Default >>>> ActionInvocation.java:237) >>>> at >>>> com.opensymphony.xwork2.validator.ValidationInterceptor.doInte >>>> rcept(ValidationInterceptor.java:252) >>>> at >>>> org.apache.struts2.interceptor.validation.AnnotationValidation >>>> Interceptor.doIntercept(AnnotationValidationInterceptor.java:68) >>>> at >>>> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.in >>>> tercept(MethodFilterInterceptor.java:87) >>>> at >>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(Default >>>> ActionInvocation.java:237) >>>> at >>>> com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor >>>> .intercept(ConversionErrorInterceptor.java:122) >>>> at >>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(Default >>>> ActionInvocation.java:237) >>>> at >>>> com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIn >>>> tercept(ParametersInterceptor.java:195) >>>> at >>>> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.in >>>> tercept(MethodFilterInterceptor.java:87) >>>> at >>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(Default >>>> ActionInvocation.java:237) >>>> at >>>> com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIn >>>> tercept(ParametersInterceptor.java:195) >>>> at >>>> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.in >>>> tercept(MethodFilterInterceptor.java:87) >>>> at >>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(Default >>>> ActionInvocation.java:237) >>>> at >>>> com.opensymphony.xwork2.interceptor.StaticParametersIntercepto >>>> r.intercept(StaticParametersInterceptor.java:179) >>>> at >>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(Default >>>> ActionInvocation.java:237) >>>> at >>>> org.apache.struts2.interceptor.MultiselectInterceptor.intercep >>>> t(MultiselectInterceptor.java:75) >>>> at >>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(Default >>>> ActionInvocation.java:237) >>>> at >>>> org.apache.struts2.interceptor.CheckboxInterceptor.intercept(C >>>> heckboxInterceptor.java:94) >>>> at >>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(Default >>>> ActionInvocation.java:237) >>>> at >>>> org.apache.struts2.interceptor.FileUploadInterceptor.intercept >>>> (FileUploadInterceptor.java:243) >>>> at >>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(Default >>>> ActionInvocation.java:237) >>>> at >>>> com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.int >>>> ercept(ModelDrivenInterceptor.java:89) >>>> at >>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(Default >>>> ActionInvocation.java:237) >>>> at >>>> com.opensymphony.xwork2.interceptor.ScopedModelDrivenIntercept >>>> or.intercept(ScopedModelDrivenInterceptor.java:130) >>>> at >>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(Default >>>> ActionInvocation.java:237) >>>> at >>>> org.apache.struts2.interceptor.debugging.DebuggingInterceptor. >>>> intercept(DebuggingInterceptor.java:267) >>>> at >>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(Default >>>> ActionInvocation.java:237) >>>> at >>>> com.opensymphony.xwork2.interceptor.ChainingInterceptor.interc >>>> ept(ChainingInterceptor.java:126) >>>> at >>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(Default >>>> ActionInvocation.java:237) >>>> at >>>> com.opensymphony.xwork2.interceptor.PrepareInterceptor.doInter >>>> cept(PrepareInterceptor.java:138) >>>> at >>>> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.in >>>> tercept(MethodFilterInterceptor.java:87) >>>> at >>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(Default >>>> ActionInvocation.java:237) >>>> at >>>> com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept( >>>> I18nInterceptor.java:165) >>>> at >>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(Default >>>> ActionInvocation.java:237) >>>> at >>>> org.apache.struts2.interceptor.ServletConfigInterceptor.interc >>>> ept(ServletConfigInterceptor.java:164) >>>> at >>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(Default >>>> ActionInvocation.java:237) >>>> at >>>> com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept >>>> (AliasInterceptor.java:179) >>>> at >>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(Default >>>> ActionInvocation.java:237) >>>> at >>>> com.opensymphony.xwork2.interceptor.ExceptionMappingIntercepto >>>> r.intercept(ExceptionMappingInterceptor.java:176) >>>> at >>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(Default >>>> ActionInvocation.java:237) >>>> at >>>> org.apache.struts2.portlet.interceptor.PortletAwareInterceptor >>>> .intercept(PortletAwareInterceptor.java:88) >>>> at >>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(Default >>>> ActionInvocation.java:237) >>>> at >>>> org.apache.struts2.portlet.interceptor.PortletStateInterceptor >>>> .intercept(PortletStateInterceptor.java:54) >>>> at >>>> com.opensymphony.xwork2.DefaultActionInvocation.invoke(Default >>>> ActionInvocation.java:237) >>>> at >>>> org.apache.struts2.impl.StrutsActionProxy.execute(StrutsAction >>>> Proxy.java:52) >>>> at >>>> org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher.service >>>> Action(Jsr168Dispatcher.java:451) >>>> at >>>> org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher.process >>>> Action(Jsr168Dispatcher.java:298) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletFilterChainImp >>>> l.doFilter(PortletFilterChainImpl.java:77) >>>> at >>>> com.ibm.wps.engine.el.init.AttributeCopyFilter.doFilter(Attrib >>>> uteCopyFilter.java:134) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletFilterChainImp >>>> l.doFilter(PortletFilterChainImpl.java:69) >>>> at >>>> com.ibm.wps.resolver.iwidget.filter.IWidgetPortletFilter.doFil >>>> ter(IWidgetPortletFilter.java:73) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletFilterChainImp >>>> l.doFilter(PortletFilterChainImpl.java:69) >>>> at >>>> com.ibm.wps.propertybroker.standard.filter.PropertyBrokerActio >>>> nFilter.doFilter(PropertyBrokerActionFilter.java:745) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletFilterChainImp >>>> l.doFilter(PortletFilterChainImpl.java:69) >>>> at >>>> com.ibm.wps.propertybroker.standard.filter.C2APortletFilter.do >>>> Filter(C2APortletFilter.java:176) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletFilterChainImp >>>> l.doFilter(PortletFilterChainImpl.java:69) >>>> at >>>> com.ibm.wps.engine.dpr.portlet.impl.ProcessActionMemoFilter.do >>>> Filter(ProcessActionMemoFilter.java:88) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletFilterChainImp >>>> l.doFilter(PortletFilterChainImpl.java:69) >>>> at >>>> com.ibm.wps.pe.pc.waspc.plm.GlobalPortletLoadMonitoringFilter. >>>> doFilter(GlobalPortletLoadMonitoringFilter.java:205) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletFilterChainImp >>>> l.doFilter(PortletFilterChainImpl.java:69) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletServlet.doDisp >>>> atch(PortletServlet.java:527) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletServletCollabo >>>> ratorChainImpl.doCollaborator(PortletServletCollaboratorChainI >>>> mpl.java:114) >>>> at >>>> com.ibm.isclite.container.collaborator.PortletServletCollabora >>>> tor.doAction(PortletServletCollaborator.java:59) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletServletCollabo >>>> ratorChainImpl.doCollaborator(PortletServletCollaboratorChainI >>>> mpl.java:101) >>>> at >>>> com.ibm.ws.portletcontainer.rrd.RRDServerPortletServletCollabo >>>> rator.doAction(RRDServerPortletServletCollaborator.java:117) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletServletCollabo >>>> ratorChainImpl.doCollaborator(PortletServletCollaboratorChainI >>>> mpl.java:101) >>>> at >>>> com.ibm.ws.portletcontainer.cache.CacheCollaborator.doAction(C >>>> acheCollaborator.java:84) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletServletCollabo >>>> ratorChainImpl.doCollaborator(PortletServletCollaboratorChainI >>>> mpl.java:101) >>>> at >>>> com.ibm.wps.pe.pc.waspc.core.impl.PortletServletCollaboratorIm >>>> pl.doAction(PortletServletCollaboratorImpl.java:145) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletServletCollabo >>>> ratorChainImpl.doCollaborator(PortletServletCollaboratorChainI >>>> mpl.java:101) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletServlet.doDisp >>>> atch(PortletServlet.java:301) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletServletCollabo >>>> ratorChainImpl.doCollaborator(PortletServletCollaboratorChainI >>>> mpl.java:82) >>>> at >>>> com.ibm.isclite.container.collaborator.PortletServletCollabora >>>> tor.doDispatch(PortletServletCollaborator.java:143) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletServletCollabo >>>> ratorChainImpl.doCollaborator(PortletServletCollaboratorChainI >>>> mpl.java:74) >>>> at >>>> com.ibm.ws.portletcontainer.rrd.RRDServerPortletServletCollabo >>>> rator.doDispatch(RRDServerPortletServletCollaborator.java:60) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletServletCollabo >>>> ratorChainImpl.doCollaborator(PortletServletCollaboratorChainI >>>> mpl.java:74) >>>> at >>>> com.ibm.ws.portletcontainer.cache.CacheCollaborator.doDispatch >>>> (CacheCollaborator.java:74) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletServletCollabo >>>> ratorChainImpl.doCollaborator(PortletServletCollaboratorChainI >>>> mpl.java:74) >>>> at >>>> com.ibm.wps.pe.pc.waspc.core.impl.PortletServletCollaboratorIm >>>> pl.doDispatch(PortletServletCollaboratorImpl.java:112) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletServletCollabo >>>> ratorChainImpl.doCollaborator(PortletServletCollaboratorChainI >>>> mpl.java:74) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletServlet.dispat >>>> ch(PortletServlet.java:208) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletServlet.servic >>>> e(PortletServlet.java:165) >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831) >>>> at >>>> com.ibm.ws.webcontainer.servlet.ServletWrapper.service(Servlet >>>> Wrapper.java:1655) >>>> at >>>> com.ibm.ws.webcontainer.servlet.ServletWrapper.service(Servlet >>>> Wrapper.java:1595) >>>> at >>>> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebA >>>> ppFilterChain.java:104) >>>> at >>>> com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(Web >>>> >>> AppFilterChain.java:77) >>> >>>> at >>>> com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(We >>>> bAppFilterManager.java:908) >>>> at >>>> com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(S >>>> ervletWrapper.java:932) >>>> at >>>> com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(S >>>> ervletWrapper.java:500) >>>> at >>>> com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleReque >>>> st(ServletWrapperImpl.java:178) >>>> at >>>> com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handl >>>> eRequest(GenericServletWrapper.java:121) >>>> at >>>> com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include >>>> (WebAppRequestDispatcher.java:673) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletInvokerImpl.in >>>> voke(PortletInvokerImpl.java:214) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletInvokerCollabo >>>> ratorChainImpl.doCollaborator(PortletInvokerCollaboratorChainI >>>> mpl.java:76) >>>> at >>>> com.ibm.ws.portletcontainer.cache.PortletInvokerCacheCollabora >>>> tor.doAction(PortletInvokerCacheCollaborator.java:50) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletInvokerCollabo >>>> ratorChainImpl.doCollaborator(PortletInvokerCollaboratorChainI >>>> mpl.java:65) >>>> at >>>> com.ibm.ws.portletcontainer.ext.PortletInvokerPerformanceColla >>>> borator.invoke(PortletInvokerPerformanceCollaborator.java:313) >>>> at >>>> com.ibm.ws.portletcontainer.ext.PortletInvokerPerformanceColla >>>> borator.doInvoke(PortletInvokerPerformanceCollaborator.java:101) >>>> at >>>> com.ibm.ws.portletcontainer.ext.PortletInvokerPerformanceColla >>>> borator.invokePMI(PortletInvokerPerformanceCollaborator.java:163) >>>> at >>>> com.ibm.ws.portletcontainer.ext.PortletInvokerPerformanceColla >>>> borator.doInvoke(PortletInvokerPerformanceCollaborator.java:91) >>>> at >>>> com.ibm.ws.portletcontainer.ext.PortletInvokerPerformanceColla >>>> borator.doAction(PortletInvokerPerformanceCollaborator.java:62) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletInvokerCollabo >>>> ratorChainImpl.doCollaborator(PortletInvokerCollaboratorChainI >>>> mpl.java:65) >>>> at >>>> com.ibm.ws.portletcontainer.invoker.impl.PortletInvokerImpl.ac >>>> tion(PortletInvokerImpl.java:77) >>>> at >>>> com.ibm.ws.portletcontainer.PortletContainerImpl.doAction(Port >>>> letContainerImpl.java:186) >>>> at >>>> com.ibm.ws.portletcontainer.PortletContainerInvokerCollaborato >>>> rChainImpl.doCollaborator(PortletContainerInvokerCollaboratorC >>>> hainImpl.java:78) >>>> at >>>> com.ibm.ws.portletcontainer.ext.ExtCollaborator.doAction(ExtCo >>>> llaborator.java:58) >>>> at >>>> com.ibm.ws.portletcontainer.PortletContainerInvokerCollaborato >>>> rChainImpl.doCollaborator(PortletContainerInvokerCollaboratorC >>>> hainImpl.java:65) >>>> at >>>> com.ibm.ws.portletcontainer.cache.CacheInvokerCollaborator.doA >>>> ction(CacheInvokerCollaborator.java:76) >>>> at >>>> com.ibm.ws.portletcontainer.PortletContainerInvokerCollaborato >>>> rChainImpl.doCollaborator(PortletContainerInvokerCollaboratorC >>>> hainImpl.java:65) >>>> at >>>> com.ibm.wps.resolver.iwidget.filter.IWidgetPCInvokerCollaborat >>>> or.doAction(IWidgetPCInvokerCollaborator.java:61) >>>> at >>>> com.ibm.ws.portletcontainer.PortletContainerInvokerCollaborato >>>> rChainImpl.doCollaborator(PortletContainerInvokerCollaboratorC >>>> hainImpl.java:65) >>>> at >>>> com.ibm.ws.portletcontainer.PortletContainerImpl.processPortle >>>> tAction(PortletContainerImpl.java:152) >>>> at >>>> com.ibm.ws.portletcontainer.pcinvoker.PortletInvokerImpl$1.run >>>> >>> (PortletInvokerImpl.java:59) >>> >>>> at >>>> java.security.AccessController.doPrivileged(AccessController.java:251) >>>> at >>>> com.ibm.ws.portletcontainer.pcinvoker.PortletInvokerImpl.invok >>>> eProcessAction(PortletInvokerImpl.java:55) >>>> at >>>> com.ibm.wps.pe.pc.waspc.core.impl.PortletInvokerImpl$3.invoke( >>>> >>> PortletInvokerImpl.java:121) >>> >>>> at >>>> com.ibm.wps.pe.pc.waspc.core.impl.PortletInvokerImpl.invoke(Po >>>> rtletInvokerImpl.java:182) >>>> at >>>> com.ibm.wps.pe.pc.waspc.core.impl.PortletInvokerImpl.invokePro >>>> cessAction(PortletInvokerImpl.java:119) >>>> at >>>> com.ibm.wps.pe.pc.waspc.event.ActionEvent.execute(ActionEvent.java:78) >>>> at >>>> com.ibm.wps.pe.pc.waspc.event.EventQueueManager.processEventLo >>>> op(EventQueueManager.java:112) >>>> at >>>> com.ibm.wps.pe.pc.waspc.PortletContainerImpl.performEvents(Por >>>> tletContainerImpl.java:237) >>>> at >>>> com.ibm.wps.pe.pc.PortletContainerImpl.performEvents(PortletCo >>>> ntainerImpl.java:298) >>>> at >>>> com.ibm.wps.engine.phases.WPActionPhase.processPortlets(WPActi >>>> onPhase.java:2978) >>>> at >>>> com.ibm.wps.engine.phases.WPActionPhase.execute(WPActionPhase. >>>> java:666) >>>> at >>>> com.ibm.wps.state.phases.AbstractActionPhase.next(AbstractActi >>>> onPhase.java:146) >>>> at com.ibm.wps.engine.Servlet.callPortal(Servlet.java:950) >>>> at com.ibm.wps.engine.Servlet.doGet(Servlet.java:677) >>>> at com.ibm.wps.engine.Servlet.doPost(Servlet.java:984) >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:738) >>>> at com.ibm.wps.engine.Servlet.doFilter(Servlet.java:1429) >>>> at >>>> com.ibm.wps.resolver.servlet.ContentHandlerCleanup.doFilter(Co >>>> ntentHandlerCleanup.java:672) >>>> at >>>> com.ibm.wps.resolver.servlet.AbstractFilter.doFilter(AbstractF >>>> ilter.java:93) >>>> at com.ibm.wps.engine.Servlet.service(Servlet.java:1417) >>>> at >>>> com.ibm.ws.webcontainer.servlet.ServletWrapper.service(Servlet >>>> Wrapper.java:1655) >>>> at >>>> com.ibm.ws.webcontainer.servlet.ServletWrapper.service(Servlet >>>> Wrapper.java:1595) >>>> at >>>> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebA >>>> ppFilterChain.java:131) >>>> at >>>> com.ibm.wps.engine.ExtensionFilter$ExtendedFilterChain.doFilte >>>> >>> r(ExtensionFilter.java:91) >>> >>>> at >>>> com.ibm.wps.engine.ExtensionFilter.doFilter(ExtensionFilter.java:178) >>>> at >>>> com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter( >>>> FilterInstanceWrapper.java:188) >>>> at >>>> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebA >>>> ppFilterChain.java:116) >>>> at >>>> com.ibm.wps.engine.ExtendedLocaleFilter.doFilter(ExtendedLocal >>>> eFilter.java:113) >>>> at >>>> com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter( >>>> FilterInstanceWrapper.java:188) >>>> at >>>> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebA >>>> ppFilterChain.java:116) >>>> at >>>> com.ibm.wps.resolver.friendly.servlet.FriendlySelectionFilter. >>>> doFilter(FriendlySelectionFilter.java:191) >>>> at >>>> com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter( >>>> FilterInstanceWrapper.java:188) >>>> at >>>> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebA >>>> ppFilterChain.java:116) >>>> at >>>> com.ibm.wps.mappingurl.impl.URLAnalyzer.doFilter(URLAnalyzer.java:412) >>>> at >>>> com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter( >>>> FilterInstanceWrapper.java:188) >>>> at >>>> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebA >>>> ppFilterChain.java:116) >>>> at >>>> com.ibm.wps.engine.VirtualPortalFilter.doFilter(VirtualPortalF >>>> ilter.java:88) >>>> at >>>> com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter( >>>> FilterInstanceWrapper.java:188) >>>> at >>>> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebA >>>> ppFilterChain.java:116) >>>> at >>>> com.ibm.wps.state.filter.StateCleanup.doFilter(StateCleanup.java:94) >>>> at >>>> com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter( >>>> FilterInstanceWrapper.java:188) >>>> at >>>> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebA >>>> ppFilterChain.java:116) >>>> at >>>> com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(Web >>>> >>> AppFilterChain.java:77) >>> >>>> at >>>> com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(We >>>> bAppFilterManager.java:908) >>>> at >>>> com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(S >>>> ervletWrapper.java:932) >>>> at >>>> com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(S >>>> ervletWrapper.java:500) >>>> at >>>> com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleReque >>>> st(ServletWrapperImpl.java:178) >>>> at >>>> com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3826) >>>> at >>>> com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup >>>> .java:276) >>>> at >>>> com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContaine >>>> r.java:931) >>>> at >>>> com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebCont >>>> ainer.java:1583) >>>> at >>>> com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelL >>>> ink.java:186) >>>> at >>>> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDis >>>> crimination(HttpInboundLink.java:455) >>>> at >>>> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNew >>>> Information(HttpInboundLink.java:384) >>>> at >>>> com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.compl >>>> ete(HttpICLReadCallback.java:83) >>>> at >>>> com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCo >>>> mpleted(AioReadCompletionListener.java:165) >>>> at >>>> com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAs >>>> yncFuture.java:217) >>>> at >>>> com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(Asyn >>>> cChannelFuture.java:161) >>>> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) >>>> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) >>>> at >>>> com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHa >>>> ndler.java:775) >>>> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) >>>> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1550) >>>> >>>> Here are the libs I am using: >>>> >>>> For Tiles: >>>> commons-beanutils-1.8.0.jar >>>> commons-digester-2.0.jar >>>> commons-fileupload-1.2.1.jar >>>> commons-io-1.3.2.jar >>>> commons-logging-1.1.jar >>>> tiles-api-2.1.2.jar >>>> tiles-compat-2.1.2.jar >>>> tiles-core-2.1.2.jar >>>> tiles-jsp-2.1.2.jar >>>> tiles-servlet-2.1.2.jar >>>> freemarker-2.3.16.jar >>>> >>>> For Struts2: >>>> javassist-3.4.ga.jar >>>> ognl-3.0.jar >>>> struts2-core-2.2.1.1.jar >>>> struts2-portlet-plugin-2.2.1.jar >>>> struts2-tiles-plugin-2.2.1.1.jar >>>> xwork-core-2.1.6.jar >>>> >>>> Can anybody please tell me what I am doing wrong? >>>> >>>> Thank you >>>> >>>> >>> >>> >>> -- >>> >> -- Bertrand