Tuesday, September 21, 2004

Porting a struts-based web application module into eXo Portal

First of all, I should thanks Punit Pandey for providing a good comparison among java portals solutions. When I read his article, I could make my decision to choose a portal as a platform for developing tomorrow application! Thank Mr. Benjamin Mestrallet and his staff for providing this wonderful portal.

The following steps should be perform to port a struts-based web application module into eXo Portal:
  1. ExoStrutsPortlet should be introduced as the portlet class:
    File: portlet.xml
  2. <portlet-app  ... >
    
    <portlet>
    ...
    <portlet-class>exo.portal.portlet.struts.ExoStrutsPortlet</portlet-class>
    </portlet>
    </portlet-app>

  3. welcome file of the application should be introduced as default-page:
    File: portlet.xml
  4. <portlet-app  ... >
    
    <portlet>
    ...
    <init-param>
    <name>default-page</name>
    <value>/login.jsp</value>
    </init-param>
    </portlet>
    </portlet-app>

    Of course you should add mandatory parts, such as supported modes


  5. PortletApplicationListener and ServletWrapper should be introduced in the web application as follow:
    File: web.xml

    <web-app>
    
    <listener>
    <listener-class>exo.services.portletcontainer.impl.servlet.PortletApplicationListener</listener-class>
    </listener>
    <servlet>
    <servlet-name>PortletWrapper</servlet-name>
    <servlet-class>exo.services.portletcontainer.impl.servlet.ServletWrapper</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>PortletWrapper</servlet-name>
    <url-pattern>/PortletWrapper</url-pattern>
    </servlet-mapping>
    </web-app>
  6. ExoActionServlet and /struts-controller should be introduce as action servlet class and its related mapping, as follow:
    File: web.xml
  7. <servlet>
    
    <servlet-name>action</servlet-name>
    <servlet-class>exo.portal.portlet.struts.ExoActionServlet</servlet-class>
    ...
    </servlet>

    <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>/struts-controller</url-pattern>
    </servlet-mapping>

  8. ExoRequestProcessor should be added as request processor of the application module as follow:
    File: struts-config.xml
  9. <controller processorClass="exo.portal.portlet.struts.ExoRequestProcessor"
    
    debug="1" contentType="text/html">
    ...
    </controller>


Your feedbacks are welcome masoud.omidvar@gmail.com

7 Comments:

At March 17, 2005 at 7:44 AM, Blogger Levent Gurses said...

Masoud,

Thank you for putting out this nice article. It's very generous of you to share your knowledge.

A question arouse in my mind while walking through the steps. If you make the suggested chages to portlet.xml, namely portlet-class -> exo.portal.portlet.struts.ExoStrutsPortlet <-/portlet-class->, doesn't this lock the portlet to the exo container only? In other words, what is a good way to write a Struts portlet portable to all portlet containers?

I appreciate your help with this.
Levent Gurses

 
At February 9, 2006 at 11:23 PM, Blogger travistaft2147012387 said...

I read over your blog, and i found it inquisitive, you may find My Blog interesting. My blog is just about my day to day life, as a park ranger. So please Click Here To Read My Blog

http://www.juicyfruiter.blogspot.com

 
At October 4, 2006 at 2:17 AM, Blogger johneyjones4554920744 said...

hey, I just got a free $500.00 Gift Card. you can redeem yours at Abercrombie & Fitch All you have to do to get yours is Click Here to get a $500 free gift card for your backtoschool wardrobe

 
At August 5, 2008 at 2:37 PM, Blogger bestonline323 said...

how generous of you to put this info online! thank you this helped me alot.

Cheers,
Shruti

__________________
ori struts

 
At January 31, 2009 at 1:48 AM, Blogger dhd said...

This momentousdecree warcraft leveling came as a great beacon light wow lvl of hope to millions of negroslaves wow power level who had been seared power leveling in the flames of power leveling withering wrath of the lich king power leveling injustice.wrath of the lich king power leveling it came as a WOTLK Power Leveling joyous daybreak to end the long WOTLK Power Leveling night ofcaptivity.WOTLK Power Leveling but one hundred years wlk power leveling later, we must face aoc gold the tragic fact thatthe age of conan power leveling negro is still not free. aoc power leveling one hundred years later,age of conan power leveling the lifeof the negro ffxi gil is still sadly crippled by the final fantasy xi gil manacles ofsegregation guild wars gold and the chains of discrimination. one hundred yearslater, maplestory mesos the negro lives on a lonely island of poverty in themidst of a vast ocean of material prosperity.dog clothes one hundred yearslater

 
At November 18, 2009 at 1:25 PM, Blogger milf said...

dessicant air dryer pediatric asthma asthma specialist
carpet cleaning dallas tx carpet cleaners dallas carpet cleaning dallas
beach vacations your beach vacations
bob hairstyle
bob haircuts bob layered pob hairstyle
bobbed classic bob Care for Curly Hair
Tips for Curly Hair curly hair 12r 22.5 best price
tires truck bus tires 12r 22.5 washington new house
new house Houston new house san Antonio new house ventura
sealy air beds portable portables air beds
antique doorknobs drying desiccant
air drying desiccantlipitor allergic reactionsApple prodam iphone praha

 
At November 18, 2009 at 1:25 PM, Blogger milf said...

new houston house houston house tx stains removal dye
stains removal clothes stains removal teeth whitening
teeth whiteningbright teeth jennifer grey nose
jennifer nose jobs calebrities nose jobs Women with Big Noses
Women hairstyles Big Nose Women, hairstylesdvd player troubleshootingtroubleshooting with the dvd playercheap beach vacationsnight vision binoculars bargainsflorida headache clinic

 

Post a Comment

<< Home