Installing Pluto into Sun Application Server (GlassFish)
This document is guide for the manually installation of Pluto 1.1.0 into Sun Application Server (Glassfish) v9.1. There are several tasks that must be done before getting Pluto configured and running. Those tasks are described in the following sections:
Getting the Pluto Enterprise Application ARchive (pluto-ear)
- Installing required libraries.
Configuring Application Scope PortletSession attributes
- Configuring users and groups
- Packaging and deploying the Pluto Enterprise Application ARchive
Getting the Pluto Enterprise Application ARchive (pluto-ear)
You will find attached to this page a file called pluto-ear-1.1.0-beta2-src.tar.bz2. This file contains the source code (which is only composed of XML files) for the Pluto Enterprise Application. This code and the packaged file are essential to achieve a successfully deployment of Pluto Portal into Sun Application Server.
Deploying pluto-portal and pluto-testsuite as separate web modules will fail because Sun Application Server doesn't allows crossing servlet context from one module to another one if they are not part of the same enterprise application.
Click in this link to download: pluto-ear
Unpack this file at the top folder of the Pluto source tree and modify the parent's pom.xml to include the new project module.
<project>
...
<modules>
...
<module>pluto-ear</module>
...
</modules>
...
</project>
Installing required libraries
Step 1: Copy the following libraries to the domain's libraries folder (${com.sun.aas.instanceRoot}/lib). By default: SUNWappserver/domains/domain1/lib
- castor-1.0.jar
- commons-logging-1.1.jar
- portlet-api-1.0.jar
- pluto-container-1.1.0-beta2.jar
- pluto-descriptor-api-1.1.0-beta2.jar
- pluto-descriptor-impl-1.1.0-beta2.jar
- pluto-taglib-1.1.0-beta2.jar
Step 2: Copy the following to ${com.sun.aas.instanceRoot}/lib/ext
- xercesImpl-2.6.2.jar
- xmlParserAPIs-2.6.2.jar
Configuring Application Scope PortletSession attributes
Create a file called sun-web.xml with the following contents:
<?xml version="1.0" encoding="UTF-8"?>
<sun-web-app>
<session-config>
<cookie-properties>
<property name="cookiePath" value="/" />
</cookie-properties>
</session-config>
</sun-web-app>Now copy this file the to the pluto-portal and pluto-testsuite projects inside its source tree. Its final location must be src/main/webapp/WEB-INF/sun-web.xml
Configuring users and groups
The easiest way to confiure users and groups is doing it from the Admin Console.
Navigate on the menu to Configuration > Security > Realms > file.
Click on the button Manage Users...
Click on New...
The following form you must fill it with the following values:
User ID: pluto
Password: pluto
Confirm Password: pluto
Group List: pluto
Packaging and deploying the Pluto Enterprise Application ARchive
Now it's time to build the Pluto distribution with the new pluto-ear inside of it:
mvn clean install
When this operations finish we obtain the file pluto-ear/target/pluto-ear-1.1.0-beta2.ear. This file is the one that must be deployed to the Application Server.
Navigate to Applications > Enterprise Applications
Click on Deploy...
Select the pluto-ear-1.1.0-beta2.jar file you just generated from your local hard drive and click on Next
Change Application Name to pluto-ear. Click on Finish.
Now write the following URL in your web browser http://localhost:8080/pluto
You should see the Pluto's login page.
FAQ
I got a JasperException when I run the Pluto's test pages while admin and about pages run well.:
Explanation: This is an issue related to the castor's marshaller during the packaging of the pluto-testsuite web module. This happens because when the web.xml is written to pluto-testsuite/target/pluto-testsuite/WEB-INF folder the new file misses the DOCTYPE declaration and, once deployed, GlassFish doesn't know which version of the spec is required for the pluto-testsuite web module. So GlassFish fallsback to the the J2EE 1.3 Specification. In this spec., expression language (EL) is not defined so you get a JasperException per portlet when test pages are run.
Solution: To solve this you have to copy the following DOCTYPE declaration to the target/pluto-testsuite/WEB-INF/web.xml file:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">Then, you must pack the pluto-testsuite-1.1.0-beta2.war web module manually, copy it to your Maven2 local repository. Run mvn install from pluto-1.1.0-beta2-src/pluto-ear folder and deploy the enterprise application using the admin console.