[ 
https://issues.apache.org/jira/browse/WICKET-2707?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Igor Vaynberg reassigned WICKET-2707:
-------------------------------------

    Assignee: Ate Douma

> Wicket 1.4.5 + JBoss Portal 2.7.2: Ajax Requests are not recognized by JBoss 
> Portal
> -----------------------------------------------------------------------------------
>
>                 Key: WICKET-2707
>                 URL: https://issues.apache.org/jira/browse/WICKET-2707
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket-portlet
>    Affects Versions: 1.4.5
>         Environment: Windows XP SP3
> jdk1.5.0_15
> Wicket 1.4.5 
> JBoss Portal 2.7.2
> Spring 2.5.2
>            Reporter: Uttam Phalnikar
>            Assignee: Ate Douma
>   Original Estimate: 168h
>  Remaining Estimate: 168h
>
> While testing Wicket 1.4.5 based portlets on JBoss Portal 2.7.2, it was 
> realized that JBoss is not recognizing the Ajax Requests. After some 
> debugging, the root cause turned out to be following code from wicket-ajax.js.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>               if (Wicket.isPortlet()) {
>               // first check if a query string is provided
>               var qs = this.url.indexOf('?');
>               if (qs==-1) {
>                   qs = this.url.indexOf('&');
>               }
>               if (qs>-1) {
>                   var query = this.url.substring(qs+1);
>                   // ensure the query is not empty
>                   if (query && query.length > 0) {
>                       // cut off query part from original url
>                       this.url = this.url.substring(0,qs);
>                       // ensure query ends with &
>                       if (query.charAt(query.length-1)!='&') {
>                           query += "&";
>                       }
>                       // post the query string instead to support portlets
>                       // for which you cannot modify/append to the url
>                       return this.post(query);
>                   }
>               }
> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
> For some reason this JS code converts query string into POST data. JBoss 
> portal server code tries to read "action" parameter in the query string & 
> fails to recognize the request. As a fix, I had to comment out the this "if" 
> loop.
> In addition, it was found that while redirecting the request from 
> WicketPortet to WicketFilter, the "wicket-ajax" header gets lost. That 
> confuses the Wicket code. As a fix, I had to change "createUrl" JS function 
> from wicket-ajax.js to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>       createUrl: function() {
>               var createdUrl;
>               if (this.randomURL == false)
>                       createdUrl = this.url;
>               else
>                       createdUrl = this.url + (this.url.indexOf("?")>-1 ? "&" 
> : "?") + "random=" + Math.random();
>                       
>               if (Wicket.isPortlet()) {
>               var qs = createdUrl.indexOf('?');
>               if (qs==-1) {
>                   createdUrl = createdUrl + "?wicket:ajax=true";
>               }else{
>                       createdUrl = createdUrl + "&wicket:ajax=true";
>               }
>               }
>               
>               return createdUrl;
>       },
> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to