1.2. Deploying the Struts Example Application

Problem

You want to deploy the Struts MailReader example application to Tomcat.

Solution

If you don't already have the Tomcat running on your box, you can download it from http://jakarta.apache.org/tomcat. This recipe assumes that you are using Tomcat 5. Set environment variables for Struts and Tomcat, copy the Struts example WAR file to Tomcat, and start Tomcat.

Warning

If you are using Struts 1.2, the WAR file for the Struts example application has been changed from struts-example.war to struts-mailreader.war.

The commands for a Windows machine are shown here:

C:\>set STRUTS_HOME=c:\jakarta-struts-1.1

C:\>set CATALINA_HOME=c:\tomcat5

C:\>copy %STRUTS_HOME%\webapps\struts-example.war %CATALINA_HOME%\webapps
        1 file(s) copied.

C:\>%CATALINA_HOME%\bin\startup
Using CATALINA_BASE:   c:\tomcat5
               Using CATALINA_HOME:   c:\tomcat5
               Using CATALINA_TMPDIR: c:\tomcat5\temp
               Using JAVA_HOME:       c:\j2sdk1.4.2

The last command shown, %CATALINA_HOME%\bin\startup, starts Tomcat. On Windows, you will see Tomcat startup in a separate terminal window. The output in this terminal window displays information about the applications deployed and the state of Tomcat:

               Jun 22, 2004 12:23:34 AM org.apache.catalina.core.StandardHostDeployer install
               INFO: Installing web application at context path /struts-example from URL file:c
               :/tomcat5/webapps/struts-example
Jun 22, 2004 12:23:38 AM org.apache.struts.util.PropertyMessageResources <init>
INFO: Initializing, config='org.apache.struts.util.LocalStrings', returnNull=tru
e
Jun 22, 2004 12:23:38 AM org.apache.struts.util.PropertyMessageResources <init>
INFO: Initializing, config='org.apache.struts.action.ActionResources', returnNul
l=true
Jun 22, 2004 12:23:40 AM org.apache.struts.util.PropertyMessageResources <init>
INFO: Initializing, config='org.apache.struts.webapp.example.AlternateApplicatio
nResources', returnNull=true
Jun 22, 2004 12:23:40 AM org.apache.struts.util.PropertyMessageResources <init>
INFO: Initializing, config='org.apache.struts.webapp.example.ApplicationResource
s', returnNull=true
Jun 22, 2004 12:23:40 AM org.apache.struts.webapp.example.memory.MemoryDatabaseP
lugIn init
INFO: Initializing memory database plug in from '/WEB-INF/database.xml'
Jun 22, 2004 12:23:40 AM org.apache.struts.validator.ValidatorPlugIn initResourc
es
INFO: Loading validation rules file from '/WEB-INF/validator-rules.xml'
Jun 22, 2004 12:23:41 AM org.apache.struts.validator.ValidatorPlugIn initResourc
es
INFO: Loading validation rules file from '/WEB-INF/validation.xml'
...
Jun 22, 2004 12:23:44 AM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on port 80
Jun 22, 2004 12:23:45 AM org.apache.jk.common.ChannelSocket init
INFO: JK2: ajp13 listening on /0.0.0.0:8009
Jun 22, 2004 12:23:45 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=20/50  config=c:\tomcat5\conf\jk2.properties
Jun 22, 2004 12:23:45 AM org.apache.catalina.startup.Catalina start
               INFO: Server startup in 49852 ms

You can use this output to verify that the application deployed and that Tomcat successfully started and is running. In the output shown above, you can see that Tomcat deployed the struts-example.war file. In addition, the last line indicates that Tomcat is running and the length of time it took to start up.

On Unix/Linux, you would use similar commands:

$ export STRUTS_HOME=/usr/local/jakarta-struts-1.1

$ export CATALINA_HOME=/usr/local/tomcat5

$ cp $STRUTS_HOME/webapps/struts-example.war $CATALINA_HOME/webapps

$ $CATALINA_HOME/bin/startup.sh
Using CATALINA_BASE:   /usr/local/tomcat5
               Using CATALINA_HOME:   /usr/local/tomcat5
               Using CATALINA_TMPDIR: /usr/local/tomcat5/temp
               Using JAVA_HOME:       /usr/local/j2sdk1.4.2

Tomcat starts up as a background process. You can monitor the output from Tomcat using the following:

$ tail -f $CATALINA_HOME/logs/catalina.out

Other than the different operating system file paths, the output will be identical to the output on Windows shown previously.

Navigate your browser to http://localhost:8080/struts-example. You should see the page shown in Figure 1-1.

Struts example application

Figure 1-1. Struts example application

Discussion

Using and examining the struts-example web application is an excellent learning aid for Struts. Before you write your first Struts application, you should understand how the struts-example application works. The best way to do this is to deploy the application. Experiment with the interface and take the walking tour. You will want to follow along in the walking tour by using your text editor or IDE to view the source code.

Tip

You will need to download the Struts binary and source distributions to deploy the struts-example. The WAR files are included in the binary distribution. The source code is supplied in the source distribution.

In addition to the struts-example application, additional web applications demonstrate other Struts features as shown in Table 1-1.

Table 1-1. Struts 1.1 example applications

WAR file to deploy

Description

struts-blank.war

A boilerplate Struts application.

struts-documentation.war

Struts User's Guide and tag library reference documents.

struts-example.war

The seminal Struts Mail Reader example. Demonstrates most of the basic core features and functions provided by Struts.

struts-exercise-taglib.war

An application that exercises the functionality of the Struts tag libraries.

struts-upload.war

Shows how to use Struts support for file uploads.

struts-validator.war

Demonstrates the use of the Validator with Struts.

tiles-documentation.war

Includes Tiles documentation, sample layouts and tutorials.

Struts 1.2 reorganized the example applications. Table 1-2 lists the web applications contained in the Struts 1.2 /webapps directory.

Table 1-2. Struts 1.2 example applications

WAR file to deploy

Description

struts-blank.war

A boilerplate Struts application.

struts-documentation.war

Struts User's Guide and tag library reference documents.

struts-examples.war

Replaces the struts-exercise-taglib.war, struts-upload.war, and struts-validator.war. Combines the tag library, upload, and Validator examples into one application.

struts-mailreader.war

The seminal Struts Mail Reader example. Demonstrates most of the basic core features and functions provided by Struts.

tiles-documentation.war

Includes Tiles documentation, sample layouts and tutorials.

See Also

Recipe 1.1 discusses how to download Struts and the details different distributions that are available.

Get Jakarta Struts Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.