WebSphere Portal v8 Programming

WebSphere Portal v8 Programming


This course is intended for programmers who will be developing applications for WebSphere Portal Server v8.

NOTE: This class can also be delivered at previous versions if required.


Delegates should have intermediate knowledge of Java development using RAD, as taught in our Java Programming with IBM RAD course.

Additionally, knowledge of Servlet and JSP is strongly recommended.


5 days. Hands on.

This course is available on site only. Please call for details.

Course Objectives

This five day training class teaches students WebSphere Portal development using JSR 286 portlet API. The JSR 286 API is a major revision of the portlet specification and contains significant improvements. The class also covers JavaServer Faces based portal site development and using Dojo and AJAX with portlets. All labs are carried out using Rational Application Developer (RAD) 8.5.

The following topics are covered in this course:

  • Introduction to WebSphere Portal, key concepts and benefits
  • Portal programming model
  • Detail coverage of the JSR 286 API
  • Introduction to Portal Toolkit
  • Struts based portlet development
  • JavaServer Faces (JSF) based portlet development
  • AJAX
  • Using Dojo in portlets on WebSphere Portal
  • Web Services for Remote Portlets

At the end of this course, delegates will be able to:

  • Install and use the latest Portal Toolkit
  • Understand the JSR 286 portlet programming model
  • Use the Rational Application Developer (RAD) 8.5 based Portal Toolkit to build portal applications
  • Develop cooperative portlets to share data
  • Develop portlets using Struts and JavaServer Faces (JSF)
  • Use AJAX in a portlet
  • Provide and consume portlets using Web Services for Remote Portlets (WSRP)

Course Content

Introduction to WebSphere Portal Server
What is a Portal?
An Example of a WebSphere Portal Site.
General Portal Architecture.
WebSphere Portal Products.
A Typical Network Architecture for WebSphere Portal.
WebSphere Portal Server.
WebSphere Portal Server Architecture.
Page Aggregation Modules.
WebSphere Portal Built-in Portlets.
Portlet Application.
Portlet Mode and State.
WebSphere Portal Information.
Java Portlet Specification 1.0 (JSR-168).
Java Portlet Specification 2.0 (JSR-286).
Portlet Security Overview.
Portal Access Control.
Portal User Management.
Credential Vault Service.
Best Practices For Development.
Review Questions.
Review Answers.

Portlet Development using Rational Application Developer 8.5
The RAD 8.5 Product.
Portlet Development Support.
RAD 8.5 Installation.
Portal Server 8.0 Installation.
Basic Steps in Portlet Development.
Project Structure.
Portlet Project.
Create a Project Structure.
portlet.xml Editor.
Create a Test Portal Server.
Managing the Server.
Unit Testing.
Export Portlet Application.
Review Questions.
Review Answers.

Introduction to JSR 286 Based Portal Programming
What is JSR 286?
Relationship With Java SE and Java EE.
Comparing Portlets with Servlets.
A Portal Site.
Portlet Application.
The portlet.xml File.
Portlet Definition in portlet.xml.
Portlet Container.
Portlet Window.
Review Questions.
Review Answers.

Basic Portlet Programming
Model-View-Controller in Portlet Application.
The Portlet Interface.
The Hello World Portlet.
Portlet Lifecycle - Initialization.
Portlet Lifecycle – Request Handling.
Two Phase Request Processing.
Two Phase Request Processing Architecture.
The render Method.
The PortletRequest Interface.
The PortletResponse Interface.
The RenderResponse Interface.
PortletURL Example.
The processAction Method.
The ActionRequest Interface.
Example: Handling Form Submission.
The ActionResponse Interface.
Example Use of Render Parameters.
Dealing With Browser History.
The GenericPortlet Class.
User Session Management.
Using the Session.
Relationship of PortletSession with HttpSession.
Session Usage Example.
End of Portlet Life.
Portlet Configuration.
Initialization Parameters.
Portlet Context.
Invoking the View Layer.
Controller Logic Implementation Techniques.
Review Questions.
Review Answers.

Portlet Preferences
Portlet Preferences.
Portlet Preferences API.
Example: Reading Preferences.
Updating Portlet Preferences.
Example: Updating Preference.
Validating Preference Update.
Example Validator Class.
Review Questions.
Review Answers.

Display Generation
Techniques in View Development.
PortletRequestDispatcher include/forward Details.
JSR 286 Tags.
The defineObjects Tag.
Example defineObjects Usage.
The actionURL Tag.
The renderURL Tag.
The param Tag.
The namespace Tag.
National Language Support.
Resource Bundle File.
Displaying Translated Text.
Portlet Resource Bundle.
Providing Locale Specific Preference Defaults.
Review Questions.
Review Answers.

Advanced Programming Topics
JSR 286 Annotations.
@ProcessAction Annotation.
Setting the Action Name in URL.
Portlet Caching.
Basic Caching Setup.
Programmatic Cache Control.
Validation Based Caching.
Validation Caching API.
Example Validation Control.

Portlet Services
Portlet Services.
Writing a Portlet Service.
Defining the Portlet Service Interface.
Example - AccountService.
Writing the Portlet Service Implementation.
Example – AccountServiceImpl.
Registering Portlet Services.
WAS Admin Console PortletServiceRegistryService.
Using a Service from a Portlet.
Example – Using a Service.
Content Access Service.
Review Questions.
Review Answers.

Credential Vault
Credential Vault.
Components of Credential Vault.
Structure of the Credential Vault.
Slot Scope.
Credential Access Level.
Single Sign-on Scenario.
CredentialVaultService Interface Methods.
Example - Looking Up CredentialVaultService.
Example – Create a Slot.
Saving Credential in a Slot.
Credential Class.
Classes that Implement the Credential Interface.
Example – Using a PassiveCredential.
Example – Using HttpFormBasedAuthCredential.
Review Questions.
Review Answers.

Portlet Communication Overview
Portlet Communication Techniques.
Comparison of Portlet Communication Techniques.
Which Portlet Communication Technique Should I Use?

Portlet Event
Portlet Events.
Event Architecture.
Example Use Case.
Event Flow Sequence.
Sequence Diagram.
Defining an Event in portlet.xml.
Using Default Namespace.
Creating the Payload Class.
Publishing an Event.
Consuming an Event.
The @ProcessEvent Annotation.
Details about @ProcessAction.
Additional Notes About Events.

Public Render Parameters
Public Render Parameters.
Example Use Case.
Steps to Using Public Render Parameters.
Define Public Render Parameter in portlet.xml.
Declare Public Render Parameter for a Portlet.
Setting Value of a Public Render Parameter.
Example Setting Public Render Parameter.
Getting Value of a Public Render Parameter.
Additional API.

Client-Side Click-to-Action Portlet Communication
Client-side Click-to-Action ("Live Text").
Example Use Case.
Specify a Live Text Source.
Specify a Live Text Source – Example.
Specify a Live Text Target.
Specify a Live Text Target - Example.
Using RAD 8.5 to Set up Client-side Click-to-Action.
Insert a Client-side Click-to-Action Output Property.
Insert a Client-side Click-to-Action Input Property.
Insert a Client-side Click-to-Action Menu Header.
Looking Underneath the Hood.

Introduction to JavaServer Faces
What is JavaServer Faces (JSF)?
Why Use JSF?
Nature of a JSF Application.
The Sun Reference Implementation (RI).
JSF and MVC.
Faces Servlet.
Managed Bean.
The View.
A Simple JSF Application.
The Input Form: form.jsp.
The Result: thanks.jsp.
The Controller: AddressBean.
Page Flow or Navigation Rule.
How Does the Application Work?
Under the Covers: The Rendered Form HTML.
Under the Covers: The Layout Tree.
Creating a JSF Portlet.
Navigation State Management.
Advanced: Obtaining Core JSF Objects.

Using AJAX in a Portlet
What is AJAX?
A Simple Example.
The Old Way.
The AJAX Way.
Two Key Aspects of AJAX.
Advantages of the AJAX Approach.
The Basic AJAX API.
Creating the XMLHttpRequest Object.
The XMLHttpRequest Object Basics.
Complete Example.
The Timeline.
Using AJAX from a Portlet.
JSR-286 and AJAX.
The ResourceServingPortlet Interface.
Output From serveResource().
AJAX Request Timeline.
Steps to be Taken by a Portlet.
A Complete Example.
The View JSP.
The Portlet Class.

The Dojo Toolkit
Dojo Capabilities.
Simple Example – Tab Widget.
How Does Dojo Work?
Importing Packages.
Widget Basics.
Widget Layout Example.
The Two byId() Methods.
Widget Properties.
Widget Events.
Common Features of Widgets.
Form Input Widgets.
The Button Widget.
The Checkbox Widget.
The ComboBox Widget.
The FilteringSelect Widget.
The DateTextBox Widget.
Layout Widgets.
Other Common GUI Widgets.
Creating Widget Instances Programmatically.
Creating Widgets Programmatically.
Review Questions.
Review Answers.

Using Dojo in WebSphere Portal 8.0
Dojo and AJAX Portlets.
Dojo Versions in WebSphere Portal 8.0.
Dojo Support in RAD 8.5.

IWidget Portlet
Introduction to iWidget.
iWidget Portlets.
Anatomy of an iWidget.
Creating an iWidget.
The iWidget Editor.
Developing the Business Logic.
Lifecycle Callback Methods.
Firing an Event.
Consuming an Event.

Web Services for Remote Portlets
Remote Portlets.
WSRP Terminology.
WSRP Benefits.
WSRP Architecture.
Information Artifacts.
Security Issues.
JSR-286 and WSRP 2.0.
Pre-defined Container Events.

Portlet Build and Deployment
Overview of the Build Process.
The Build Process.
Installing a Portlet Web Module.
How is a Portlet Web Module Installed?
Deploying Portlets Within an EAR.
Managing Portlet Web Modules.
Managing Portlet Applications.
Managing Portlets.
Adding a Portlet to a Page.
Configuring a Portlet.
Copying a Portlet Application.
Copy a Portlet.
Removing a Portlet From a Page.
Uninstalling a Portlet Application.

Portal Development Best Practices
Architecture Best Practices.
Controller (Portlet) Guidelines.
View (JSP) Guidelines.
Configuration Management.
Session Management.
Security Guidelines.
Java Performance Tips.
Portlet Performance Tips.
Performance Testing Guidelines.

Virtual Courses

ALL of our courses can be delivered virtually. And our Bath public schedule of courses are now available as live virtual sessions, using the popular Zoom Virtual Classroom and remote labs. Delegates can test their access at: www.zoom.us/test

On-Site Courses

Can't attend one of our public classes? Booking for multiple people?

All our courses are available on your site! Delivered for your staff, at your premises.

Contact us to find out more...