Contents
- Intended Audience
- Documentation Accessibility
- Structure
- Related Documents
- Conventions
- Browser Recommendations
- 1.1 Introduction to Portal Development
- 1.2 Understanding Portlets
- 1.3 Portlet Anatomy
- 1.4 Portlet Resources
- 1.4.1 Out-of-the-Box Portlets
- 1.4.2 Other Sources of Pre-Built Portlets
- 1.4.3 Web Clipping
- 1.4.4 OmniPortlet
- 1.4.5 Portlet Builder
- 1.4.6 Programmatic Portlets
- 1.4.7 Deciding Which Tool to Use
- 1.5 Summary
- 2.1 The Portlet Technologies Matrix
- 2.2 General Suitability
- 2.2.1 Web Clipping
- 2.2.1.1 Examples of portlets you can build using Web Clipping
- 2.2.2 OmniPortlet
- 2.2.2.1 Examples of portlets you can create with OmniPortlet
- 2.2.3 Java Portlets
- 2.2.3.1 Examples of portlets you can build using Java
- 2.2.4 Portlet Builder
- 2.2.4.1 Examples of portlets you can build using the Portlet Builder
- 2.2.5 PL/SQL Portlets
- 2.2.5.1 Examples of portlets you can build using PL/SQL
- 2.3 Expertise Required
- 2.3.1 Web Clipping
- 2.3.2 OmniPortlet
- 2.3.3 Java Portlets
- 2.3.4 Portlet Builder
- 2.3.5 PL/SQL Portlets
- 2.4 Deployment Type
- 2.4.1 Web Providers
- 2.4.2 WSRP Providers
- 2.4.3 Database Providers
- 2.4.4 Provider Architecture
- 2.5 Caching Style
- 2.5.1 Web Clipping, OmniPortlet, and Portlet Builder
- 2.5.2 Java Portlets
- 2.5.3 PL/SQL Portlets
- 2.6 Development Tool
- 2.6.1 Web Clipping, OmniPortlet, and Portlet Builder
- 2.6.2 Java Portlets
- 2.6.3 PL/SQL Portlets
- 2.7 Portlet Creation Style
- 2.7.1 OmniPortlet and Web Clipping
- 2.7.2 Java Portlets
- 2.7.3 Portlet Builder
- 2.7.4 PL/SQL Portlets
- 2.8 User Interface Flexibility
- 2.8.1 Web Clipping
- 2.8.2 OmniPortlet and Portlet Builder
- 2.8.3 Java Portlets and PL/SQL Portlets
- 2.9 Ability to Capture Content from Web Sites
- 2.9.1 Web Clipping
- 2.9.2 OmniPortlet
- 2.9.3 Java Portlets
- 2.9.4 PL/SQL Portlets
- 2.10 Ability to Render Content Inline
- 2.10.1 Web Clipping
- 2.10.2 OmniPortlet
- 2.10.3 Java Portlets
- 2.10.4 Portlet Builder
- 2.10.5 PL/SQL Portlets
- 2.11 Charting Capability
- 2.11.1 Web Clipping
- 2.11.2 OmniPortlet
- 2.11.3 Java Portlets
- 2.11.4 Portlet Builder
- 2.11.5 PL/SQL Portlets
- 2.12 Public Portlet Parameters Support
- 2.13 Private Portlet Parameter Support
- 2.13.1 OmniPortlet, Web Clipping, and Portlet Builder
- 2.13.2 Java Portlets and PL/SQL Portlets
- 2.14 Event Support
- 2.14.1 Web Clipping, OmniPortlet, and Java Portlets
- 2.14.2 Portlet Builder and PL/SQL Portlets
- 2.15 Ability to Hide and Show Portlets Based on User Privileges
- 2.15.1 Web Clipping and OmniPortlet
- 2.15.2 Java Portlets
- 2.15.3 Portlet Builder
- 2.15.4 PL/SQL Portlets
- 2.16 Multi-lingual Support
- 2.16.1 Web Clipping, OmniPortlet, Java Portlets, and PL/SQL Portlets
- 2.16.2 Portlet Builder
- 2.17 Pagination Support
- 2.17.1 OmniPortlet
- 2.17.2 Java Portlets and PL/SQL Portlets
- 2.17.3 Portlet Builder
- 2.18 Single Sign-On and External Application Integration
- 2.18.1 Web Clipping
- 2.18.2 OmniPortlet
- 2.18.3 Java Portlets
- 2.18.4 PL/SQL Portlets
- 3.1 What is OmniPortlet?
- 3.1.1 Type
- 3.1.2 Source
- 3.1.2.1 Spreadsheet
- 3.1.2.2 SQL
- 3.1.2.3 XML
- 3.1.2.4 Web Service
- 3.1.2.5 Web Page
- 3.1.3 Filter
- 3.1.4 View
- 3.1.5 Layout
- 3.1.5.1 Tabular Layout
- 3.1.5.2 Chart Layout
- 3.1.5.3 News Layout
- 3.1.5.4 Bullet Layout
- 3.1.5.5 Form Layout
- 3.1.6 Edit Defaults mode
- 3.1.7 Events
- 3.2 Parameters and Events
- 3.2.1 Portlet Parameters and Events
- 3.2.2 Page Parameters and Events
- 3.3 Using OmniPortlet
- 3.3.1 Adding an OmniPortlet to a Portal Page
- 3.3.2 Defining a Portlet Based on a SQL Data Source
- 3.3.3 Defining a Portlet Based on a Web Service
- 3.3.4 Defining a Portlet Based on an Existing Web Page
- 3.3.5 Modifying the Layout of an Existing OmniPortlet
- 3.3.6 Using Parameters and Events
- 3.3.6.1 Adding Parameters to an Existing OmniPortlet
- 3.3.6.2 Adding Events to an Existing OmniPortlet
- 3.3.6.3 Relating Portlet Parameters and Events on a Page
- 3.4 Summary
- 4.1 What Is Web Clipping?
- 4.2 Adding Web Page Content to a Portal Page
- 4.2.1 Adding a Web Clipping Portlet to a Page
- 4.2.2 Selecting a Section of a Web Page to Display in the Web Clipping Portlet
- 4.2.3 Setting Web Clipping Portlet Properties
- 4.3 Integrating Authenticated Web Content Using Single Sign-On
- 4.4 Example: Adding a Web Clipping That Users Can Customize
- 4.4.1 Exercise: Adding a Web Clipping Portlet to a Personal Page
- 4.4.2 Exercise: Selecting a Clipping in OTN
- 4.4.3 Exercise: Customizing a Web Clipping Portlet
- 4.5 Current Limitations for Web Clipping
- 5.1 Guidelines for Creating Java Portlets
- 5.1.1 Shared Screen Mode (View Mode for JPS)
- 5.1.1.1 HTML Guidelines for Rendering Portlets
- 5.1.1.2 Cascading Style Sheet Guidelines for Rendering Portlets
- 5.1.2 Edit Mode (JPS and OracleAS Portal)
- 5.1.2.1 Guidelines for Edit Mode Options
- 5.1.2.2 Guidelines for Buttons in Edit Mode
- 5.1.2.3 Guidelines for Rendering Customization Values
- 5.1.3 Edit Defaults Mode (JPS and OracleAS Portal)
- 5.1.3.1 Guidelines for Edit Defaults Mode Options
- 5.1.3.2 Guidelines for Buttons in Edit Defaults Mode
- 5.1.3.3 Guidelines for Rendering Customization Values
- 5.1.4 Preview Mode (JPS and OracleAS Portal)
- 5.1.4.1 Guidelines for Preview Mode
- 5.1.5 Full Screen Mode (OracleAS Portal)
- 5.1.5.1 Guidelines for Full Screen Mode
- 5.1.6 Help Mode (JPS and OracleAS Portal)
- 5.1.6.1 Guidelines for Help Mode
- 5.1.7 About Mode (JPS and OracleAS Portal)
- 5.1.7.1 Guidelines for About Mode
- 5.1.8 Link Mode (OracleAS Portal)
- 5.1.8.1 Guidelines for Link Mode
- 5.2 Introduction to Java Portlet Specification and WSRP
- 5.2.1 The Relationship Between WSRP and JPS
- 5.3 Building JPS-Compliant Portlets with Oracle JDeveloper
- 5.3.1 Installing the Oracle JDeveloper Portal Add-In
- 5.3.2 Building JPS-compliant Portlets
- 5.3.2.1 Creating a Portlet
- 5.3.2.2 Adding Portlet Logic
- 5.3.2.3 Deploying Your Portlet to an Application Server
- 5.3.2.4 Registering and Viewing Your Portlet
- 5.4 Building PDK-Java Portlets with Oracle JDeveloper
- 5.4.1 Installing the Oracle JDeveloper Portal Add-In
- 5.4.2 Building PDK-Java Portlets
- 5.4.2.1 Creating a Portlet and Provider
- 5.4.2.2 Adding Portlet Logic
- 5.4.2.3 Validating Your Portlet and Provider
- 5.4.2.4 Deploying to an Application Server
- 5.4.2.5 Registering and Viewing Your Portlet
- 5.4.3 Adding Render Modes
- 5.4.3.1 Assumptions
- 5.4.3.2 Implementing Extra Show Modes
- 5.4.3.3 Updating the XML Provider Definition
- 5.4.3.4 Viewing the Portlet
- 5.4.4 Customizing Portlets
- 5.4.4.1 Assumptions
- 5.4.4.2 Implementing Customization for Edit and Edit Defaults Pages
- 5.4.4.3 Implementing Customization for Show Pages
- 5.4.4.4 Preference Information Within the XML Provider Definition
- 5.4.4.5 Viewing the Portlet
- 5.4.5 Passing Parameters and Submitting Events
- 5.4.5.1 Assumptions
- 5.4.5.2 Adding Parameters to Your Portlets
- 5.4.5.3 Submitting Events
- 5.4.6 Accessing Session Information
- 5.4.6.1 Assumptions
- 5.4.6.2 Implementing Session Storage
- 5.4.6.3 Viewing the Portlet
- 5.4.7 Implementing Portlet Security
- 5.4.7.1 Assumptions
- 5.4.7.2 Portlet Security Features
- 5.4.7.3 Single Sign-On
- 5.4.7.4 OracleAS Portal Access Control Lists (ACLs)
- 5.4.7.5 Portlet Security Managers
- 5.4.7.6 OracleAS Portal Server Security
- 5.4.7.7 Message Authentication
- 5.4.7.8 HTTPS Communication
- 5.4.7.9 LDAP (Oracle Internet Directory) Security
- 5.4.8 Controlling the Export/Import of Portlet Customizations
- 5.4.8.1 Import/Export Programming Interface
- 5.4.8.2 Exporting Customizations Example
- 5.4.8.3 Implementing Security for Export/Import
- 5.4.9 Enhancing Portlet Performance with Caching
- 5.4.9.1 Assumptions
- 5.4.9.2 Activating Caching
- 5.4.9.3 Adding Expiry-Based Caching
- 5.4.9.4 Adding Invalidation Based Caching
- 5.4.9.5 Adding Validation-Based Caching
- 5.4.10 Writing Multi-Lingual Portlets
- 5.4.10.1 Assumptions
- 5.4.10.2 Internationalizing Your Portlet
- 5.4.10.3 Viewing the Portlet
- 5.5 Building Struts Portlets with Oracle JDeveloper
- 5.5.1 OracleAS Portal and the Apache Struts Framework
- 5.5.1.1 Model View Controller Overview
- 5.5.1.2 Apache Struts Overview
- 5.5.1.3 OracleAS Portal Integration with Struts
- 5.5.1.4 Summary
- 5.5.2 Creating a Struts Portlet
- 5.5.2.1 Creating a Struts Portlet
- 5.5.2.2 Registering the Provider
- 5.5.2.3 Summary
- 6.1 Guidelines for Creating PL/SQL Portlets
- 6.1.1 Portlet Show Modes
- 6.1.2 Recommended Portlet Procedures and Functions
- 6.2 Building PL/SQL Portlets with the PL/SQL Generator
- 6.2.1 Creating the Input XML File
- 6.2.2 Running the PL/SQL Generator
- 6.2.3 Publishing the Generated PL/SQL Portlet
- 6.2.3.1 Installing the Packages in the Database
- 6.2.3.2 Registering the Database Provider
- 6.2.3.3 Adding Your Portlet to a Page
- 6.3 Building PL/SQL Portlets Manually
- 6.3.1 Implementing the Portlet Package
- 6.3.2 Implementing the Provider Package
- 6.3.3 Adding Your Portlet to a Page
- 6.4 Implementing Information Storage
- 6.4.1 Implementing a Preference Store
- 6.4.1.1 Using a Preference Store
- 6.4.1.2 Creating and Accessing a Preference Store
- 6.4.2 Implementing a Session Store
- 6.4.2.1 Creating and Accessing a Session Store
- 6.5 Using Parameters
- 6.5.1 Passing Private Parameters
- 6.5.2 Passing Page Parameters and Mapping Public Portlet Parameters
- 6.5.3 Retrieving Parameter Values
- 6.6 Accessing Context Information
- 6.6.1 Using Context Information
- 6.6.2 Using wwctx_api to Obtain Context Information
- 6.7 Implementing Portlet Security
- 6.7.1 Using Security
- 6.7.1.1 Guidelines for Using the Security APIs
- 6.7.2 Coding Security
- 6.8 Improving Portlet Performance with Caching
- 6.8.1 Using Caching
- 6.8.1.1 Validation-Based Caching
- 6.8.1.2 Expiry-Based Caching
- 6.8.1.3 Invalidation-Based Caching
- 6.8.2 Configuring and Monitoring the Cache
- 6.8.3 Implementing Validation-Based Caching
- 6.8.4 Implementing Expiry-Based Caching
- 6.8.5 Implementing Invalidation-Based Caching
- 6.9 Implementing Error Handling
- 6.9.1 Using Error Handling
- 6.9.1.1 Guidelines for Error Handling
- 6.9.2 Adding Error Handling
- 6.10 Implementing Event Logging
- 6.10.1 Using Event Logging
- 6.10.1.1 Guidelines for Event Logging
- 6.10.2 Adding Event Logging
- 6.11 Writing Multi-Lingual Portlets
- 6.11.1 Using Multi-Lingual Support
- 6.11.2 Adding Multi-Lingual Support
- 6.11.2.1 Loading Language Strings
- 6.11.2.2 Retrieving Language Strings
- A.1 Using a Wizard to Build a Portlet
- A.1.1 Creating a Schema in OracleAS Portal
- A.1.1.1 Creating a Schema
- A.1.1.2 Granting and Revoking Privileges on Database Objects
- A.1.1.3 Enrolling the Schema in One or More Roles
- A.1.2 Creating a Provider for Locally Built Portlets
- A.1.3 Exposing a Provider
- A.1.4 Creating Portlets Using OracleAS Portal Wizards
- A.1.4.1 Building Portlets Declaratively
- A.1.4.2 Building Forms Declaratively
- A.1.4.3 Building Reports Declaratively
- A.1.4.4 Building Forms and Reports against interMedia Rich Content
- A.1.4.5 Building Charts Declaratively
- A.1.4.6 Building Lists of Values Declaratively
- A.2 Editing a Portlet Builder Component
- A.3 Managing Portlets
- A.3.1 Navigating to the Component Management Page
- A.3.2 Renaming a Portlet
- A.3.3 Deleting a Portlet
- A.3.4 Copying a Portlet
- A.3.5 Generating the PL/SQL Package for a Portlet
- A.3.6 Viewing Source Code
- A.3.6.1 Viewing the Package Spec and Body for a Portlet
- A.3.6.2 Viewing the Call Interface for a Portlet
- A.3.7 Managing Locks on Portlets
- A.4 Managing Versions
- A.5 Managing Portlet Security
- A.5.1 Granting Portlet Access Privileges
- A.5.1.1 Inheriting Portlet Access Privileges from a Provider
- A.5.1.2 Granting Access Privileges to Individual Users
- A.6 Performing Test Runs on a Portlet
- A.6.1 Running a Component as a Full Page
- A.6.2 Running a Component as a Portlet
- A.6.3 Running a Component through the Customization Form
- A.6.4 Running the Component as a Portlet through the Portlet Customization Form
- A.6.5 Running in Batch Mode
- A.6.5.1 Setting init.ora Parameters for Batch Jobs
- A.6.5.2 Adding a Batch Button to an Existing Component
- A.7 Referencing the OracleAS Portal Schema
- A.8 Coding Additional Functionality
- A.8.1 Using Bind Variables
- A.8.2 Writing Event Handlers for Items on Forms
- A.8.2.1 Writing a JavaScript Event Handler for an Item on a Form
- A.8.2.2 Writing a PL/SQL Event Handler for a Button on a Form
- A.8.3 Using PL/SQL to Get and Set Values in a Form
- A.8.4 Using PL/SQL to Get or Set Cookies in a Form or Report
- A.8.5 Defining Values through Page Parameters
- A.9 Using Shared Components to Create a Look and Feel
- A.9.1 Granting Access to Shared Components
- A.9.2 Using JavaScript to Create Field- and Form-Level Validation
- A.9.2.1 Guidelines for Writing Field- or Form-Level Validation JavaScript
- A.9.2.2 Creating JavaScript under the Shared Components Provider
- A.9.2.3 Adding JavaScript to a Form
- A.9.3 Creating Color Definitions
- A.9.4 Creating Image Definitions
- A.9.5 Creating Font Definitions
- A.9.6 Using User Interface Templates
- A.9.6.1 Building a Structured User Interface Template
- A.9.6.2 Building an Unstructured User Interface Template
- A.9.6.3 Configuring a Page Group to Allow Use of UI Templates
- A.9.6.4 Applying a UI Template to a Page
- A.10 Example: Building Charts and Reports
- A.10.1 Exercise: Building the Team Details Report
- A.10.2 Exercise: Building the Average Salaries Chart
- A.10.3 Exercise: Building the Team Bonuses Report
- B.1 Problems and Solutions
- B.1.1 Java Portlet Wizard Not Available
- B.1.2 Portlet Code Does Not Compile
- B.1.3 Application Server Connection Test Fails
- B.1.4 Provider Test Page Shows Error
- B.1.5 Provider Registration Fails
- B.1.6 Portlet Does Not Display on Page
- B.1.7 After Initial Successful Display, Portlet Does Not Display on Page
- B.1.8 Other Portlet Problems
- B.1.9 Provider Group Not Created
- B.1.10 URL Portlet Does Not Work
- B.2 Diagnosing OmniPortlet Problems
- B.2.1 Chart Not Rendered on UNIX
- B.2.2 Unable to Access HTTPS Site
- B.2.3 OmniPortlet Cannot Access the Specified URL
- B.2.4 Portlet Content Is Not Refreshed
- B.2.5 Edit Defaults Changes are Not Reflected in the Customized Portlet
- B.3 Diagnosing Web Clipping Problems
- B.3.1 Checking the Status of the Provider with the Test Page
- B.3.2 Solving Problems with Connections
- B.3.2.1 Configuring Proxy Servers
- B.3.2.2 Proxy Authentication
- B.3.3 Setting Logging Levels
- B.4 Need More Help?