Well, I removed redirect in agreementHandler (forward list) and it begen
work properly. But there occured another problem - after succesfully
return from cc_activate.jsp to agreement_list.jsp I clicked on another
portal tab and then back on the tab with my application and new
exception is displayed:

javax.servlet.ServletException: Request[/agreementHandler] does not
contain handler parameter named 'op'.  This may be caused by whitespace
in the label text.
        at
org.apache.struts.actions.DispatchAction.unspecified(DispatchAction.java
:222)
        at
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.j
ava:256)
        at
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194
)
        at
org.apache.struts.actions.DispatchAction$$FastClassByCGLIB$$d3d27916.inv
oke()
...

So then I created new action list2 in agreementHandler with
redirect=false that I use for redirect from another handler only and
original forward list leave with redirect=true and it works fine! 

    <action path="/agreementHandler" name="agreementsListForm"
type="com.cleverbee.hci.test.struts.action.AgreementHandlerAction"
scope="session" validate="false" parameter="op">
      <forward name="list" path="/agreement_list.jsp" redirect="true"/>
      <forward name="list2" path="/agreement_list.jsp"
redirect="false"/>      
    </action>
    <action path="/creditCardHandler" name="creditCardForm"
type="com.cleverbee.hci.test.struts.action.CreditCardHandlerAction"
scope="session" validate="false" parameter="op">
      <forward name="show" path="/cc_activate.jsp" redirect="true"/>
      <forward name="storno1" path="/agreementHandler.shtml?op=list2"
redirect="true"/>
    </action>

It seems that some kind of magic power is requiered to run struts in
jetspeed but finally it works! :-)



-----Original Message-----
From: Ate Douma [mailto:[EMAIL PROTECTED] 
Sent: Monday, February 06, 2006 11:13 AM
To: [email protected]
Subject: Re: Chaining actions

That's much better info :)

Now I see your creditCardHandler is invoked from an ActionUrl (form
post).
So, the original redirect="true" on your forward to "storno1" is
actually correct.
But, from the debug log I now see that the agreementHandler itself
forwards to a "/agreement_list.jsp" using redirect="true".
Remove the redirect from that one, and try again.

Lubos Svoboda wrote:
> Sorry for my limited information. Action is invoked from html form as
> follows:
> 
> <%@ taglib
> uri="http://portals.apache.org/bridges/struts/tags-portlet-html";
> prefix="html" %>
> ...
> <html:form action="/creditCardHandler.shtml" method="post"> <input 
> type="hidden" name="op" value="submit"/> ...
>  <td align="right"><input type="submit" name="storno"
> value="Storno"/></td>
> ...
> </html:form>
> 
> I have already tried your hint and removed redirect="true" but it 
> still freeze at the same point.
> 
> May be there is something wrong with my struts-portlet-config:
> 
> <config>
>   <render-context>
>     <attribute name="errors"/>
>     <attribute name="message"/> 
>     <attribute name="op"/>     
>   </render-context>
>   <portlet-url-type>
>     <action path="/agreementHandler"/> 
> <!--    //it also freeze with this row
>     <action path="/agreementHandler.shtml?op=list"/>         
> -->  
>     <action path="/creditCardHandler"/> 
>     <resource path="/images/"/>
>   </portlet-url-type>
> </config>
> 
> Here is my log information from bridge and struts:
> 
> 10:45:48 DEBUG (org.apache.portals.bridges.struts.StrutsPortlet:334) -

> process path: /creditCardHandler.shtml, requestType: ACTION
> 10:45:48 DEBUG (org.apache.struts.util.ModuleUtils:167) - Get module 
> name for path /creditCardHandler.shtml
> 10:45:48 DEBUG (org.apache.struts.util.ModuleUtils:191) - Module name
> found: default
> 10:45:48 DEBUG (org.apache.struts.action.RequestProcessor:172) - 
> Processing a 'POST' for path '/creditCardHandler'
> 10:45:48 DEBUG (org.apache.struts.util.RequestUtils:200) -  Looking 
> for ActionForm bean instance in scope 'session' under attribute key 
> 'creditCardForm'
> 10:45:48 DEBUG (org.apache.struts.util.RequestUtils:255) -  Can 
> recycle existing ActionForm instance of type
> 'com.cleverbee.hci.test.struts.form.CreditCardForm'?: true
> 10:45:48 DEBUG (org.apache.struts.util.RequestUtils:263) -  --> 
> [EMAIL PROTECTED]
> 10:45:48 DEBUG (org.apache.struts.action.RequestProcessor:327) - 
> Storing ActionForm bean instance in scope 'session' under attribute 
> key 'creditCardForm'
> 10:45:48 DEBUG (org.apache.struts.action.RequestProcessor:794) - 
> Populating bean properties from this request
> 10:45:48 DEBUG (org.apache.struts.action.RequestProcessor:255) - 
> Looking for Action instance for class 
> org.springframework.web.struts.DelegatingActionProxy
> 10:45:48 DEBUG (org.apache.struts.action.RequestProcessor:269) - 
> Returning existing Action instance
> 10:45:48 DEBUG
> (com.cleverbee.hci.test.struts.action.CreditCardHandlerAction:89) -
> storno()
> 10:45:48 DEBUG (org.apache.struts.action.RequestProcessor:364) - 
> processForwardConfig(ForwardConfig[name=storno2,path=/agreementHandler
> .s
> html?op=list,redirect=false,contextRelative=false,module=null])
> 10:45:48 DEBUG
> (org.apache.portals.bridges.struts.PortletServletRequestDispatcher:65)

> - saving  dispatch to :/agreementHandler.shtml?op=list, from ACTION 
> /creditCardHandler.shtml
> 10:45:48  WARN (org.apache.portals.bridges.struts.StrutsPortlet:438) -
> Warning: Using the original action URL for render URL:
> /creditCardHandler.shtml.
> A redirect should have been issued.
> 10:45:48 DEBUG (org.apache.portals.bridges.struts.StrutsPortlet:334) -

> process path: /creditCardHandler.shtml, requestType: VIEW
> 10:45:48 DEBUG (org.apache.struts.util.ModuleUtils:167) - Get module 
> name for path /creditCardHandler.shtml
> 10:45:48 DEBUG (org.apache.struts.util.ModuleUtils:191) - Module name
> found: default
> 10:45:48 DEBUG (org.apache.struts.action.RequestProcessor:172) - 
> Processing a 'GET' for path '/creditCardHandler'
> 10:45:48 DEBUG (org.apache.portals.bridges.struts.PortletServlet:143) 
> - render context path: /agreementHandler.shtml?op=list
> 10:45:48 DEBUG
>
(org.apache.portals.bridges.struts.PortletServletRequestDispatcher:123)
> - invoking   dispatch to :/agreementHandler.shtml?op=list, from VIEW
> /creditCardHandler.shtml
> 10:45:48 DEBUG (org.apache.struts.util.ModuleUtils:167) - Get module 
> name for path /agreementHandler.shtml
> 10:45:48 DEBUG (org.apache.struts.util.ModuleUtils:191) - Module name
> found: default
> 10:45:48 DEBUG (org.apache.struts.action.RequestProcessor:172) - 
> Processing a 'GET' for path '/agreementHandler'
> 10:45:48 DEBUG (org.apache.struts.util.RequestUtils:200) -  Looking 
> for ActionForm bean instance in scope 'session' under attribute key 
> 'agreementsListForm'
> 10:45:48 DEBUG (org.apache.struts.util.RequestUtils:294) -  Creating 
> new ActionForm instance of type 
> 'com.cleverbee.hci.test.struts.form.AgreementsListForm'
> 10:45:48 DEBUG (org.apache.struts.util.RequestUtils:300) -  --> 
> [EMAIL PROTECTED]
> 10:45:48 DEBUG (org.apache.struts.action.RequestProcessor:327) - 
> Storing ActionForm bean instance in scope 'session' under attribute 
> key 'agreementsListForm'
> 10:45:48 DEBUG (org.apache.struts.action.RequestProcessor:794) - 
> Populating bean properties from this request
> 10:45:48 DEBUG (org.apache.struts.action.RequestProcessor:255) - 
> Looking for Action instance for class 
> org.springframework.web.struts.DelegatingActionProxy
> 10:45:48 DEBUG (org.apache.struts.action.RequestProcessor:269) - 
> Returning existing Action instance
> 10:45:48 DEBUG
> (com.cleverbee.hci.test.struts.action.AgreementHandlerAction:37) -
> list()
> 10:45:48 DEBUG
> (com.cleverbee.hci.test.struts.action.AgreementHandlerAction:99) - 
> prepareAgreementList()...
> 10:45:48 DEBUG
> (com.cleverbee.hci.test.struts.action.AgreementHandlerAction:49) -
> list() OK,
> fwd=ForwardConfig[name=list,path=/agreement_list.jsp,redirect=true,con
> te
> xtRelative=false,module=null]
> 10:45:48 DEBUG (org.apache.struts.action.RequestProcessor:364) - 
> processForwardConfig(ForwardConfig[name=list,path=/agreement_list.jsp,
> re
> direct=true,contextRelative=false,module=null])
> 
> 
> Any ideas or suggestions?
> Thanks in advance
> Lubos
> 
> 
> -----Original Message-----
> From: Ate Douma [mailto:[EMAIL PROTECTED]
> Sent: Monday, February 06, 2006 9:22 AM
> To: [email protected]
> Subject: Re: Chaining actions
> 
> Lubos Svoboda wrote:
> 
>>Hello,
>>I have problem with chaining struts actions. I use dispatched actions 
>>in chain in my application and it works fine on tomcat without 
>>jetspeed. On the jetspeed it freeze everytime I try forward to another
> 
> 
>>action handler.
>> 
>>Here is my config:
>>Jetspeed 2
>> 
>> 
>>    <action path="/agreementHandler" name="agreementsListForm"
>>type="com.cleverbee.hci.test.struts.action.AgreementHandlerAction"
>>scope="session" validate="false" parameter="op">
>>      <forward name="list" path="/agreement_list.jsp"
> 
> redirect="true"/>
> 
>>    </action>
>>    <action path="/creditCardHandler" name="creditCardForm"
>>type="com.cleverbee.hci.test.struts.action.CreditCardHandlerAction"
>>scope="session" validate="false" parameter="op">
>>      <forward name="show" path="/cc_activate.jsp" redirect="true"/>
>>      <forward name="storno1" path="/agreementHandler.shtml?op=list"
>>redirect="true"/>
>>      <forward name="storno2" path="/agreementHandler.shtml?op=list"/>
>>
>>    </action>
>>
>>
>>Class CreditCardHandlerAction
>>....
>>public ActionForward storno(ActionMapping mapping, ActionForm form, 
>>HttpServletRequest request, HttpServletResponse response) throws 
>>Exception {
>>        .....  
>>       return mapping.findForward("storno1");    // <==== it freeze
> 
> now
> 
>>- blank page is displayed
>>}
>>
>>Logging provides me information, that method "list" in 
>>agreementHandler was executed (include forward "list"), but blank page
> 
> 
>>is displayed instead of page agreement_list.jsp!
>>Is there any workaround or fix for that? Please help.
> 
> I have little to go by as your information is still too limited.
> In the future, try to be more specific and especially provide *how* 
> you invoke a certain action or page, e.g. through a portlet ActionUrl 
> or portlet RenderUrl.
> 
> In this case, I've got the feeling the creditCardHandler might be 
> invoked during the RenderRequest processing. If true, then you 
> shouldn't be having a redirect="true" on the forward you invoke 
> because redirecting isn't possible during (Portlet) rendering.
> Remove the redirect="true" in that case from your config and it should

> work.
> 
> On another note: action chaining isn't really supported nor a 
> recommended way of using Struts by the Struts guru's themselves.
> 
> 
>>Thanks
>>Lubos
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>>
>>
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to