[ http://issues.apache.org/jira/browse/BEEHIVE-158?page=history ]
Carlin Rogers resolved BEEHIVE-158:
-----------------------------------
Assign To: Nathan Jantz (was: Carlin Rogers)
Resolution: Invalid
The TilesDefinitions test and associated files in the NetUI
coreWeb/miniTests/tiles test directory have been updated to include an example
for this issue. See revision 157848.
> IllegalArgumentException when calling an action from a Tiles Definition XML
> file.
> ---------------------------------------------------------------------------------
>
> Key: BEEHIVE-158
> URL: http://issues.apache.org/jira/browse/BEEHIVE-158
> Project: Beehive
> Type: Bug
> Components: NetUI
> Versions: V1Alpha
> Environment: Testing on Windows XP running the normal required components of
> Beehive: JDK 1.5, Tomcat 5.0.25.
> Reporter: Nathan Jantz
> Assignee: Nathan Jantz
>
> There is a feature in tiles where you can specify an action URL within a
> Tiles XML Definition file using a �path� attribute like so:
> <definition name="tilesDirectActionCall.page" path="/someOtherAction.do">
> <put name="title" value="Tiles Direct Action Call Page" />
> </definition>
> So within a traditional Struts/Tiles app, you can have an action defined in
> the struts-config to call the above definition and in turn the definition can
> call yet another action.
> I�ve tried this scenario in context of a Page Flow webapp and I don�t get the
> expected result. I get an IllegalArgumentException (full stack trace below).
> The expected result was to get a page/layout display according to the action
> �someOtherAction.do�.
> Here are some additional observations from Carlin:
> --------------------------
> When the initial action forwards to the tiles definition, we call
> TilesRequestProcessor.processTilesDefinition(). This method then calls
> doForward() to the action given in the path attribute.
> The forward processes this next action and again we process it's forward
> config, calling TilesRequestProcessor.processTilesDefinition(). This time
> there is a tiles ComponentContext attribute on the request which implies we
> do an include (RequestProcessor.doInclude()). The ComponentContext is just a
> map of the components that should be used in a given template (e.g. footer ->
> footer.jsp).
> The doInclude fails in servletContext.getRequestDispatcher() because the URI
> argument for the JSP does not start with a '/' character, the
> IllegalArgumentException.
> Should we be doing something with the URI that we pass to doInlcude()?
> Or do we want to be getting the RequestDispatcher from the request for page
> flows?
> --------------------------
> Stack Trace:
> 2005-01-12 09:48:11 StandardWrapperValve[action]: Servlet.service() for
> servlet
> action threw exception java.lang.IllegalArgumentException: Path
> main.layout-1.jsp does not start with a "/" character
> at
> org.apache.catalina.core.ApplicationContext.getRequestDispatcher(ApplicationContext.java:378)
> at
> org.apache.catalina.core.ApplicationContextFacade.getRequestDispatche
> r(ApplicationContextFacade.java:196)
> at
> org.apache.struts.action.RequestProcessor.doInclude(RequestProcessor.
> java:1080)
> at
> org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(
> TilesRequestProcessor.java:235)
> at
> org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processFor
> wardConfig(PageFlowRequestProcessor.java:1431)
> at
> org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja
> va:231)
> at
> org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processInt
> ernal(PageFlowRequestProcessor.java:571)
> at
> org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.process(Pa
> geFlowRequestProcessor.java:763)
> at
> org.apache.beehive.netui.pageflow.AutoRegisterActionServlet.process(A
> utoRegisterActionServlet.java:607)
> at
> org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
> icationFilterChain.java:237)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
> ilterChain.java:157)
> at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDisp
> atcher.java:703)
> at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(Applica
> tionDispatcher.java:463)
> at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationD
> ispatcher.java:398)
> at
> org.apache.atalina.core.ApplicationDispatcher.forward(ApplicationDis
> patcher.java:312)
> at
> org.apache.beehive.netui.pageflow.internal.DefaultForwardRedirectHand
> ler.forward(DefaultForwardRedirectHandler.java:114)
> at
> org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.doForward(
> PageFlowRequestProcessor.java:1631)
> at
> org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(
> TilesRequestProcessor.java:237)
> at
> org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processFor
> wardConfig(PageFlowRequestProcessor.java:1431)
> at
> org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja
> va:231)
> at
> org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processInt
> ernal(PageFlowRequestProcessor.java:571)
> at
> org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.process(Pa
> geFlowRequestProcessor.java:763)
> at
> org.apache.beehive.netui.pageflow.AutoRegisterActionServlet.process(A
> utoRegisterActionServlet.java:607)
> at
> org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
> icationFilterChain.java:237)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
> ilterChain.java:157)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
> alve.java:214)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
> eContext.java:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
> a:520)
> at
> org.apache.catalina.core.StandardContextValve.invokeInternal(Standard
> ContextValve.java:198)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
> alve.java:152)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
> eContext.java:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
> a:520)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
> ava:137)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
> eContext.java:104)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
> ava:117)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
> eContext.java:102)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
> a:520)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
> ve.java:109)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
> eContext.java:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
> a:520)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
> at
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:16
> 0)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
> :793)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
> ssConnection(Http11Protocol.java:702)
> at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
> :571)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
> ool.java:644)
> at java.lang.Thread.run(Thread.java:595)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira