Wednesday, 19 October 2011

How to deploy an EAR file on WebSphere Portal Server?

How to deploy an EAR file on WebSphere Portal Server?

The IBM WebSphere portal server does not allow deploying the EAR file directly in Portal Server. If you are planning to put all your web modules (war files) in an EAR file then you need to deploy the EAR file in WAS server and then later need to register your web modules/portlets to Portal server.

Following are the steps for doing the same using XMLaccess: 

Step1. Deploy your EAR on WAS server: Using Integrated Solutions Console you can deploy your ear.

For example here we have deployed a SamplePortalEAR.ear file in below screen:

 
Step2. Create XMLAccess script for portlet registration on Portal server:
Below is the sample XMLAccess script to register the web modules/portlets on Portal server: This XMLAccess script is created for SamplePortalEAR.ear file, which have two web modules (war files) that we need to register on portal server. 

xml version="1.0" encoding="UTF-8"?>
<request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="PortalConfig_6.1.0.xsd"
type="update" create-oids="true">
<portal action="locate">
<web-app action="update" uid="com.ibm.faces.portlet.FacesPortlet.9c5fe31133.webmod" active="true" predeployed="true">
<url>file://C:\IBM\WebSphere\wp_profile\installedApps\hecha\SamplePortalEAR.ear\testPortlet1.warurl>
<context-root>.testPortletcontext-root>
<display-name>testPortletdisplay-name>
<portlet-app action="update" active="true" uid="com.ibm.faces.portlet.FacesPortlet.9c5fe31133">
<portlet action="update" active="true" name="testPortlet" uniquename="">
<access-control externalized="false" owner="all authenticated portal users" private="false">
<role actionset="User" update="set">
<mapping subjectid="all authenticated portal users" subjecttype="user_group" update="set" />
role>
access-control>
portlet>
portlet-app>
web-app>
<web-app action="update" uid="com.ibm.faces.portlet.FacesPortlet.dc81041133.webmod" active="true" predeployed="true">
<url>file://C:\ibm\WebSphere\wp_profile\installedApps\hecha\SamplePortalEAR.ear\testPortlet2.warurl>
<context-root>.testPortlet2context-root>
<display-name>testPortlet2display-name>
<portlet-app action="update" active="true" uid="com.ibm.faces.portlet.FacesPortlet.dc81041133">
<portlet action="update" active="true" name="testPortlet2" uniquename="">
<access-control externalized="false" owner="all authenticated portal users" private="false">
<role actionset="User" update="set">
<mapping subjectid="all authenticated portal users" subjecttype="user_group" update="set" />
role>
access-control>
portlet>
portlet-app>
web-app>
portal>
request>
 
Mandatory tags and their values:
  • The tag is about to web module (WAR file) in your EAR file. If we have more then one web module in our EAR file then for each module It will be a separate tag.
Note: The uid attribute of must be the correct web module id with.webmod
suffix.
  • The tag holds the installed location of your web module.
  • The tag should be the correct context path of your web module other wise script will not run successfully.
  • The tag has an uid attribute it holds the web module id.
Step3. Import XMLAccess: Once we are ready with our XMLAccess, now open Portal administration then goto left hand navigation and choose Import XML option under the Portal Settings.  
Import XML file: Provide the location of XML file by clicking the browse button then click Import button: Once it will import successfully it will show an success message just above the same screen. (Below is the screen shot)
 
Registered: Now following web modules of SamplePortalEAR.ear file has been registered on portal server:
 
Registered Portlets: Now the following portlets of registered web modules are available on portal:
  • testPortlet2
  • testPortlet

Enjoy :)

3 comments:

  1. GOOD post on XML access.... Gr8!!! :)

    ReplyDelete
  2. Hi, thank you for the guide, it's really useful. Unfortunately, there is still a problem at the end: the registered portlets are in the stopped status.. How can we remove such stopped status??
    Thanks again!

    ReplyDelete