6.2 Installation | Contributors: - Craig R. McClanahan
- Mike Schachter
- Ted Husted
- Martin Cooper
- Chris Assenza
- dIon Gillard
- Eric Wu
- John Rousseau
- John Ueltzhoeffer
- Mark Budai
- Paul Runyan
- Robert Hayden
- Stanley Santiago
- Wong Kok Kai
- Rob Leland
- John Berry
|
Prerequisite Software |
The Struts binary distribution needs three other software packages installed to
operate. You may already have these installed on your system. To build Struts from
source you may need to acquire and install several others. The complete list is as
follows:
- Java Development Kit - You must download and install
a Java2 (version 1.2 or later) Java Development Kit implementation for
your operating system platform.
A good starting point for locating Java Development Kit distributions is
http://java.sun.com/j2se.
- Servlet Container - You must download and install a
servlet container that is compatible with the Servlet API Specification,
version 2.2 or later, and the JavaServer Pages (JSP) Specification,
version 1.1 or later. One popular choice is to download Apache's
Tomcat (version 3.1
or later required, version 3.3 or later recommended).
- XML Parser - Struts requires the presence of an XML
parser that is compatible with the Java API for XML Parsing (JAXP)
specification, 1.1 or later. This is bundled with J2SE 1.4 and later.
(For earlier versions of Java, the easiest way to obtain JAXP is
probably by downloading the Web Services Developers Kit
(1.1 or later!).See the
Sun JAXP FAQ for more information.)
In Struts-based web applications, you may replace the reference
implementation classes with any other JAXP compliant parser, such as
Xerces. See detailed
instructions related to the parser in the instructions for
building and installing
Struts, below.
- Ant Build System - If you are building Struts from the
source distribution, you must download and install version 1.5.1 (or later)
of the Ant build system.
This package is also strongly recommended for use in developing your
own web applications based on Struts.
- Make sure that the "ant" and "ant.bat" scripts are executable, by
adding the $ANT_HOME/bin directory to your PATH environment
variable.
- Servlet API Classes - In order to compile Struts itself,
or applications that use Struts, you will need a
servlet.jar
file containing the Servlet and JSP API classes. Most servlet containers
include this JAR file. Otherwise, you can get the Servlet API classes
distribution from
here.
- JDBC 2.0 Optional Package Classes - Struts supports
an optional implementation of
javax.sql.DataSource , so it
requires the API classes to be compiled. They can be downloaded from
http://java.sun.com/products/jdbc/download.html.
-
Jakarta Commons Packages - Struts utilizes several
packages from the Jakarta
Commons Project.
These are the packages which must be available if you wish to
build Struts from source:
- Beanutils (Version 1.6.1 or later)
- Collections (Version 2.1 or later)
- Digester (Version 1.5 or later)
- FileUpload (Version 1.0 or later)
- Lang (Version 1.0.1 or later)
- Logging (Version 1.0.3 or later when it is available)
- Struts-Legacy (Version 1.0 or later)
- Validator (Version 1.0.2 or later)
For your convenience, the requisite JARs are provided as a single
download under the lib sub-directory with each release
and beta distribution.
Please note that the minimum requirements may change between releases
and betas, and some JARs may need to be updated to use the latest
Nightly Build.
- Jakarta ORO -
Apache Jakarta ORO
version 2.0.6 (or later) is required to build Struts from source.
- Xalan XSLT Processor - If you are building Struts from
the source distribution, you will need a version of Xalan to perform
XSLT transformations. If you are using the JAXP/1.1 XML parser, you
should use the version of
xalan.jar shipped with it.
Otherwise, download and install version 1.2 of Xalan from
here.
- Cactus Testing - If you plan on testing the Struts applications
in this distribution, you must download and install version 1.3
of the Cactus test framework.
This package is also recommended for use in developing your
own unit tests for your web applications based on Struts.
|
Install A Struts Binary Distribution |
First, download a binary distribution of Struts by following the
instructions here. Then, make sure
you have downloaded and installed the
prerequisite software packages described
above.
Unpack the Struts binary distribution into a convenient directory.
(If you build Struts from the source distribution,
the result of the build will already be an unpacked binary distribution
for you). The distribution consists of the following contents:
- lib/commons-*.jar - These JAR files contain packages
from the Jakarta Commons project that are utilized within Struts
itself. When you assemble a Struts-based application, you will need
to copy these files to the
WEB-INF/lib directory.
- lib/jdbc2_0-stdext.jar - The JDBC 2.0 Optional Package
API classes. You will need to copy this file to your
WEB-INF/lib directory if you are utilizing the data
sources support provided by Struts.
- lib/struts.jar - This JAR file contains all of the
Java classes included in Struts. It should be copied into the
WEB-INF/lib directory of your web application.
WARNING - If you are going to be hosting multiple Struts
based applications on the same servlet container, you will be tempted
to place the struts.jar file into the shared repository
supported by your container. Be advised that this will like cause you
to encounter ClassNotFoundException problems unless all of
your application classes are stored in the shared repository.
- lib/struts-*.tld - These are the "tag library
descriptor" files that describe the custom tags in the various Struts
tag libraries. They should be copied into the
WEB-INF
directory of your web application. (Servlet 2.3 can omit this step
if the standard uri
is referenced.)
- webapps/struts-blank.war - This is a simple "web
application archive" file containing a basic starting point for
building your own Struts-based applications.
- webapps/struts-documentation.war - This is a
"web application archive" file containing all of the Struts
documentation found on the
Struts web site
(including these pages). You can install this web application
on any servlet container compatible with Servlet API 2.2 or later.
- webapps/struts-example.war - This is an example
web application that uses a large percentage of Struts features.
You can install this web application on any servlet container
compatible with the Servlet 2.2 (or later) and JSP 1.1 (or later)
specifications. If an XML parser is not made available to web
applications by your container, you will need to add one to the
WEB-INF/lib directory of this web application.
- webapps/struts-exercise-taglib.war - This web
application contains test pages for the various custom tags supported
by Struts. It is primarily of use to developers who are enhancing the
Struts custom tag libraries, but may also be useful as simple examples
of the usage of various Struts tags.
- webapps/struts-template.war - This web application
both introduces and demonstrates the Struts template tags.
- webapps/struts-upload.war - This web application
is a quick example of uploading files using the Struts framework.
- webapps/struts-validator.war - This web application
is an example of using the validator framework, using both the
server-side and optional client-side validation.
- webapps/tiles-documentation.war - This web
application documents how to use tiles, and was developed using tiles.
To use Struts in your own application, you will need to follow
these steps:
- Copy the files
lib/commons-*.jar from the Struts
distribution into the WEB-INF/lib directory of your
web application.
- Copy the file
lib/struts.jar from the Struts distribution
into the WEB-INF/lib directory of your web application.
- Copy the all of the files that match
lib/struts-*.tld
from the Struts distribution into the WEB-INF directory
of your web application.
- Modify the
WEB-INF/web.xml file for your web application
to include a <servlet> element to define the
controller servlet, and a <servlet-mapping> element
to establish which request URIs are mapped to this servlet. Use the
WEB-INF/web.xml file from the Struts example application
for a detailed example of the required syntax.
- Modify the
WEB-INF/web.xml file of your web application
to include the following tag library declarations (Servlet 2.3 can omit
this step if the standard uri
is referenced):
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-template.tld</taglib-location>
</taglib>
- Create a file
WEB-INF/struts-config.xml that defines the
action mappings and other characteristics of your specific application.
You can use the struts-config.xml file from the Struts
example application for a detailed example of the required syntax.
- At the top of each JSP page that will use the Struts custom tags,
add line(s) declaring the Struts custom tag libraries used on
this particular page, like this:
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %>
- When compiling the Java classes that comprise your application, be sure
to include the
struts.jar and
commons-*.jar files (copied earlier) on the
CLASSPATH that is submitted to the compiler.
|
Installing Struts With Your Servlet Container |
For most containers, you need only to:
- Copy the WAR files in your Struts
/webapp directory to your
containers webapps directory.
- In some cases, you may need to restart your container if it is running.
Running Struts Applications Under A Security Manager
Many application servers execute web applications under the control of a
Java security manager, with restricted permissions on what classes in the web
application can do. If you utilize form beans with mapped properties, you may
encounter security exceptions unless you add the following permission to the
set of permissions granted to your Struts application's codebase:
permission java.lang.RuntimePermission "accessDeclaredMembers";
Consult the documentation on your application server for more information
about how to configure additional security manager permissions.
Installing Struts on Various Containers
|
Building Struts From Source |
First, download a source distribution of Struts by following the
instructions here. Then, make sure
you have downloaded and installed all of the
prerequisite software packages described
above.
To build Struts, you will need to customize the build process to the
details of your development environment as follows:
- The Struts source distribution uses a file named
build.properties (in the top-level directory of the
distribution) to identify the location of external components
that Struts depends on.
- There is no
build.properties file included with the
source distribution. However, there is an example file named
build.properties.example that you can copy to
build.properties and then customize.
- The properties you must configure in
build.properties are:
- catalina.home - Pathname to the directory of your
binary distribution of Tomcat 4.0 (required only if you wish to
use the
deploy.catalina target).
- commons-beanutils.jar - Pathname of the BeanUtils
package JAR file from the Jakarta Commons project.
- commons-collections.jar - Pathname of the
Collections package JAR file from the Jakarta Commons project.
- commons-digester.jar - Pathname of the
Digester package JAR file from the Jakarta Commons project.
- commons-fileupload.jar - Pathname of the
Fileupload package JAR file from the Jakarta Commons project.
- commons-lang.jar - Pathname of the
Lang package JAR file from the Jakarta Commons project.
- commons-logging.jar - Pathname of the
Logging package JAR file from the Jakarta Commons project.
- commons-validator.jar - Pathname of the
Validator package JAR file from the Jakarta Commons project.
- servletapi.home - Pathname to the directory of
your binary distribution of the Servlet API classes.
- struts-legacy.jar - Pathname of the Struts Legacy
package JAR file from the Jakarta Struts contrib area.
- tomcat.home - Pathname to the directory of your
binary distribution of Tomcat 3.2 (required only if you wish to
use the
deploy.tomcat target).
- xerces.home - Pathname to the directory of your
binary distribution of the Xerces parser, version 1.2 or 1.3
(required only if you wish to use the
deploy.catalina
target).
- If you are a Struts developer with write access to the CVS repository,
be sure that you do NOT check in a copy of the
build.properties file, since it will be different for
each individual developer.
To build a "distribution" version of Struts, first change your current
directory to the directory in which you have unpacked the Struts
source distribution, and (if necessary) create or customize the
build.properties file as described above. Then, type:
ant dist
This command will create a binary distribution of Struts, in a
directory named dist (relative to where you
are compiling from). This directory contains an exact replica of the
files included in a binary distribution of Struts, as described
in the preceding section.
IMPORTANT NOTE: The struts.jar , as well as the JAR files
from the Jakarta Commons project, must be in your classpath when
compiling Struts. The build.xml provided does this
automatically. If you use your development machine to test Struts
application locally, be sure that the struts.jar is
NOT on your classpath when your container is running.
|
|