Wicket portlet with AJAX causing full page render.

View: New views
1 Messages — Rating Filter:   Alert me  

Wicket portlet with AJAX causing full page render.

by Michael Hosier :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I am in the process of migrating our portlets from Jetspeed 2.1.3 and  
Wicket 1.3.7 to Jetspeed 2.2.0 and Wicket 1.4.

I have used the j2-admin portlets as an example to learn from.  I've  
created a new portlet from scratch to test with.  This portlet  
contains a LinkTree and AjaxTabbedPanel.  These two components are  
used in the Portal Site Manager admin portlet and everything works  
fine in regards to the AJAX requests.  In my test portlet the AJAX  
requests cause a full page refresh and change the browser URL to  
something like

http://localhost:8010/jetspeed/portal/ 
_ns:YWpzbWluLTN8YzB8ZDB8ZV93dXZpZXc9MT0vYWpheFRlc3QvP3JhbmRvbVxcPTAuMjg1NjEyMDI0ODc5Nzc1
/default-page.psml

from the original

http://localhost:8010/jetspeed/portal/default-page.psml

The Wicket debug window gets as far as invoking the precall handlers  
but on the doGet function's t.send(null); function call, everything  
seems to go wrong and I get a new page with the ugly URL.

This doesn't happen in the Jetspeed admin portlets but I cannot for  
the life of me figure out what I have done incorrectly.

My portlet.xml looks like this:

        <portlet id="ajaxTest">
            <description>Ajax Test</description>
            <portlet-name>AjaxTest</portlet-name>
            <display-name> Ajax Test</display-name>
            <portlet-
class>org.apache.wicket.protocol.http.portlet.WicketPortlet</portlet-
class>
            <init-param>
              <name>wicketFilterPath</name>
              <value>/ajaxTest</value>
            </init-param>
            <init-param>
              <name>editPage</name>
              <value>/ajaxTest/edit</value>
            </init-param>
            <expiration-cache>0</expiration-cache>
            <supports>
                <mime-type>*/*</mime-type>
                <portlet-mode>view</portlet-mode>
                <portlet-mode>edit</portlet-mode>
            </supports>
            <portlet-info>
                <title>Michael's Ajax Test</title>
                <short-title>AjaxTest</short-title>
                <keywords>mth1,ajax,test</keywords>
            </portlet-info>
        </portlet>

And my web.xml looks like this:

     <filter>
       <filter-name>AjaxTest</filter-name>
       <filter-class>org.apache.wicket.protocol.http.WicketFilter</
filter-class>
       <init-param>
         <param-name>applicationClassName</param-name>
         <param-value>mth1.wicket.ajax.AjaxTestApplication</param-value>
       </init-param>
     </filter>

     <filter-mapping>
       <filter-name>AjaxTest</filter-name>
       <url-pattern>/ajaxTest/*</url-pattern>
       <dispatcher>REQUEST</dispatcher>
       <dispatcher>INCLUDE</dispatcher>
     </filter-mapping>

I also have the context.xml in META-INF set to crossContext="true".

I don't know if my problem lies in Jetspeed land or Wicket land, but  
seeing as how Jetspeed uses Wicket now and the AJAX in those portlets  
seem to work fine, I am hoping someone who developed these portlets  
will be able to give me some hint.  I am at my wits end...

Any help is appreciated!

Thanks,
Michael

---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-user-unsubscribe@...
For additional commands, e-mail: jetspeed-user-help@...