[
https://issues.apache.org/jira/browse/WICKET-2078?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12720017#action_12720017
]
Hardi Probst edited comment on WICKET-2078 at 6/16/09 7:23 AM:
---------------------------------------------------------------
>From my point of view the IBM-suggestion does not address this issue. I
>believe the problem is that the IBM implementation treats action and render
>requests differently. For example when you trigger an action in a test portlet:
public void processAction(ActionRequest request, ActionResponse
response) throws PortletException, java.io.IOException {
String rdInput="/JSR286ParameterRDAction/"+
"?param1=111¶m2=222";
PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(
rdInput );
rd.include(request,response);
}
you wont get the parameters in the servlet-filter mapped to
"/JSR286ParameterRDAction/*":
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException,
ServletException
{
int parameterCount=request.getParameterMap().size() ;
}
the value of "parameterCount" must be 2 in this example, but with WPS 6.1.0.23
it is 0!
when you do the same from a render request you get the expected result of 2.
I also tested it with the IBM-suggestion:
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException,
ServletException
{
PortletRequest portletRequest= (PortletRequest)
request.getAttribute("javax.portlet.request");
int parameterCount=portletRequest.getParameterMap().size() ;
}
But it makes no difference (parameterCount is also 0 ), and I think thats (in
this case ) the correct and expected value but helps nothing to fix this issue!
was (Author: hardi):
From my point of view the IBM-suggestion does not address this issue. I
believe the problem is that the IBM implementation treats action and render
requests differently. For example when you trigger an action in a test portlet:
public void processAction(ActionRequest request, ActionResponse
response) throws PortletException, java.io.IOException {
String rdInput="/JSR286ParameterRDAction/"+
"?param1=111¶m2=222";
PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(
rdInput );
rd.include(request,response);
}
you wont get the parameters in the servlet-filter mapped to
"/JSR286ParameterRDAction/*":
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException,
ServletException
{
int parameterCount=request.getParameterMap().size() ;
}
the value of "parameterCount" must be 2 in this example, but with WPS 6.1.0.23
it is 0!
when you do the same from a render request you get the expected result of 2.
I also tested it with the IBM-suggestion:
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException,
ServletException
{
PortletRequest portletRequest= (PortletRequest)
request.getAttribute("javax.portlet.request");
int parameterCount=portletRequest.getParameterMap().size() ;
}
But it makes no difference (parameterCount is also 0 ), and I think thats the
correct and expected value but helps nothing to fix this issue!
> WICKET-2058 does not support IBM Websphere Portal Server 6.1
> ------------------------------------------------------------
>
> Key: WICKET-2078
> URL: https://issues.apache.org/jira/browse/WICKET-2078
> Project: Wicket
> Issue Type: Bug
> Components: wicket-portlet
> Environment: WebSphere Platform 6.1 [ND 6.1.0.15 cf150808.12]
> Reporter: Hardi Probst
> Assignee: Ate Douma
> Attachments: patch.txt, patch2.txt
>
>
> First of all I want to say thanks a lot for resolving the issue WICKET-2058
> to Ate, Thijs and Antony!
> I checked out the revision 739543 from trunk and experimented/tested a lot
> with the wicket examples within IBM Websphere Portal 6.1.
> I had to add the following lines into web.xml to get the first
> example-portlets visible in my browser:
> <context-param>
> <param-name>org.apache.wicket.detectPortletContext</param-name>
> <param-value>true</param-value>
> </context-param>
> The next problem I stumbled over was that the generated links (e.g.
> BookmarkablePageLink<Void>("link", PageXY.class) ) did not work at all.
> I traced the problem down to the point that the generated wicketURL in
> PortletRequestContext.encodeRenderURL includes all query-parameters but the
> PortletFilter does
> not get them as parameters, just the path-part.
> WicketPortlet.processRequest:
> PortletRequestDispatcher rd =
> getPortletContext().getRequestDispatcher(wicketURL);
> if (rd != null)
> {
> // delegate to wicket filter - this is where the magic happens
> rd.include(request, response);
> ...
> Let's assume wicketURL has the value of
> "/repeater/?wicket:interface=:8:oir:17:toggleHighlite:2:ILinkListener::", the
> result would be the same as the value of "/repeater/".
> I was able to fix it by applying the query parameters as "real" parameters to
> the javax.portlet.PortletURL for Action and Render-URLs (see Patch for
> PortletRequestContext).
> After that I had the same problem with form-submission. The form-values came
> in perfectly to the model, but after leaving the ACTION-PHASE the state was
> all gone in RENDER-PHASE.
> So I did the same in WicketPortlet.processActionResponseState and applied all
> wicketURL-query parameteters to the response (setRenderParameter). see Patch
> for WicketPortlet.
> Another solution could be a PortletRequestWrapper within the WicketFilter
> implementation. Or does anybody have a better idea?
> It would be really great to see this issue fixed in wicket 1.4!
> I'll keep on testing the next days with the ajax examples (some worked
> already with the provided patch applied) and WPS 6.1...
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.