Tuesday, May 18, 2010

Integrating Spring Portlet MVC into your Weblogic Portal

Switching out your Weblogic Page Flow Controllers in favor of Spring Controllers is easier than you might think. Here are just a few steps to help the integration.

Dependencies
The latest production release version of Spring is version 3.0.2. In this version they have broken the release into about 20 different jar files. The libraries listed below are those that you will need to include in the WEB-INF/lib your project:
  • org.springframework.asm-3.0.2.RELEASE.jar
  • org.springframework.beans-3.0.2.RELEASE.jar
  • org.springframework.context-3.0.2.RELEASE.jar
  • org.springframework.context.support-3.0.2.RELEASE.jar
  • org.springframework.core-3.0.2.RELEASE.jar
  • org.springframework.expression-3.0.2.RELEASE.jar
  • org.springframework.web-3.0.2.RELEASE.jar
  • org.springframework.web.portlet-3.0.2.RELEASE.jar
  • org.springframework.web.servlet-3.0.2.RELEASE.jar
You'll also want to add the spring.tld and spring-form.tld in your WEB-INF/tlds directory. That way you can switch out your netui tags for the equivalent spring tags in your jsps.

Configuration
To integrate Spring into your portal application there are a few required configuration items that are needed.
  • web.xml - The listener and application context-param below basically just tell the Spring container where to find your applicationContext configuration file. This servlet is what converts the PortletRequest/PortletResponse to HttpServletRequest/HttpServletResponse for the DispatcherPortlet


  • applicationContext.xml - The applicationContext.xml is where you define beans and configuration items that will be shared by all the portlet within your web application. Here you can specify packages to scan for resources (clients/services) that will be called from your controllers. Here you also define a viewResolver bean so that Spring can resolve the views. Other application-wide beans can also be defined here, such as, a message codes resolver for displaying messages and labels and an exception resolver for error handling.
Portlet
Once your Spring Controller has been created the next step is to create the .portlet file.
  • Within Weblogic Workshop right click in the Package Explorer/Navigation panel and select New -> Portlet and give your .portlet file a name and location and click Next.

  • Then the Portlet Wizard will appear and prompt you to select a portlet type. Click the Java Portlet radio button to create a JSR 168 compliant portlet and click Next.

  • Next you will need to give a a title, label, portlet name, and a Class name and click Next.
    (The Definition Label and Portlet Name will generally always be the same, which will be the same as your [portlet-name]-portlet.xml configuration file. The Class Name will always be org.springframework.web.portlet.DispatcherPortlet. The information entered here is automatically added to the web application's portlet.xml file.)

  • Finally, click Create to create the portlet.

  • Upon creation of your .portlet file an entry similar to the one below will be automatically added to your portlet.xml file.












  • Once your .portlet file is created you can open your .portal file within Weblogic Workshop and your new Portlet should display in the Design Palette panel. You can then easily drag your portlet onto any Book or Page you wish.

That's it. Now just redeploy your web app.

1 comment:

  1. could you upload a sample code for this please?

    ReplyDelete