How to setup a basic Struts project using Eclipse IDE
Legal Disclamer
* DISCLAIMER - This simple How-To shows you one of many
ways to setup a working project using
the Struts framework. This is mainly geared toward
Struts users who are new to Eclipse, and
don't want to spend a lot of time figuring out the
differences between their old IDE (if any)
and this one.
I will also apologize ahead of time for the formatting of
this page.
In this How-To, I will demonstrate (using Eclipse 2.0.1) how
to setup, compile, run,
and debug the struts-mailreader web application that is part
of the Struts Applications subproject.
Next, I will modify the code to pull some data from a MySql
database using the popular
relational mapping tool OJB. (This is actually quite simple)
Let's get started
Before we begin, you will need to create a directory somewhere
to store your project.
I typically use C:\personal\development\Projects\(some
project)
Once that's done, extract the struts-mailreader.war to that
directory
(using your favorite zip utility)
Delete the META-INF folder because this will be created during
the build/jar/war process.
Add a build.xml file to the project root. I use something like
this:
<project name="Struts Mailreader" default="main" basedir="."> <!-- This is a basic build script, only the minimums here --> <!-- Tell ant to use my environment variables --> <property environment="env"/> <property file="./build.properties"/> <!-- This build script assumes Tomcat 5 is the servlet container. Modify as necessary if a different container is being used. --> <property name="tomcat.home" value="${env.CATALINA_HOME}"/> <property name="servlet.jar" value="${tomcat.home}/common/lib/servlet-api.jar"/> <property name="jsp.jar" value="${tomcat.home}/common/lib/jsp-api.jar"/> <property name="deploy.dir" value="${tomcat.home}/webapps"/> <property name="build.compiler" value="modern"/> <property name="build.dir" value="./WEB-INF/classes" /> <property name="src.dir" value="./WEB-INF/src"/> <property name="war.file" value="struts-mailreader"/> <property name="war.file.name" value="${war.file}.war"/> <path id="project.class.path"> <fileset dir="./WEB-INF/lib/"> <include name="**/*.jar"/> </fileset> <pathelement path="${src.dir}"/> <pathelement path="${servlet.jar}"/> <pathelement path="${jsp.jar}"/> </path> <target name="clean"> <delete dir="${build.dir}" includeEmptyDirs="true" /> </target> <target name="prep"> <mkdir dir="${build.dir}"/> </target> <target name="compile"> <javac srcdir="${src.dir}" destdir="${build.dir}" debug="on" deprecation="on"> <include name="**/*.java"/> <classpath refid="project.class.path"/> </javac> </target> <target name="cleanWebApp"> <delete file="${deploy.dir}/${war.file.name}" /> <delete dir="${deploy.dir}/${war.file}" includeEmptyDirs="true" /> </target> <target name="war"> <war warfile="${war.file.name}" webxml="./WEB-INF/web.xml"> <fileset dir="./" includes="**/*.*" excludes="*.war, **/*.nbattrs, web.xml, **/WEB-INF/**/*.*, **/project-files/**/*.*"/> <webinf dir="./WEB-INF" includes="**/*" excludes="web.xml, **/*.jar, **/*.class"/> <lib dir="./WEB-INF/lib"/> <classes dir="${build.dir}"/> <classes dir="${src.dir}"> <include name="**/*.properties"/> </classes> </war> </target> <target name="deploy"> <copy todir="${deploy.dir}"> <fileset dir="./" includes="${war.file.name}"/> </copy> </target> <target name="main" depends="clean, prep, cleanWebApp, compile, war"/> </project>
-
Create a new project.
-
New Java Project
-
Browse for the folder you created for your project.
-
Eclipse will detect your source folders from any
subdirectories under your project.
-
In our case, this is where the src folder was placed.
-
Default standard libs are automatically added
depending on the type of project.
-
Add the existing web app jars.
-
Now we need to add a few jars from the file system.
-
We always need this one (servlet.jar)
-
Ahhhh...everything looks ok for now. You can always go
back and modify these settings
later.
-
When everything settles down, you should see something
like this (of course, it might
look different depending on your
installation/customization):
-
Compilation warnings and errors are detected
immediately. In this screenshot, I drill down
into the source folder, package, file, class, and double click on the method....which
brings up the source editor. I hover the mouse over the offending warning to see
a description of what's wrong.
-
I changed ApplicationConfig to ModuleConfig, then
saved and now I see new errors.
You can right click and import ModuleConfig right from the error.
-
A quick look at the import section.
-
Right click, Source, Organize Imports
-
Ahhhh...better
-
From the Package Explorer, right click your build.xml
and run Ant:
-
Is this cool or what?
-
Uh Oh!
-
Quick look at what jars are being used to process my
build.
-
I simply removed all the existing jars from the IDE's
Ant configuration and
added all from my own installation.
-
Can't forget that last one
-
Everything went ok (for me)
-
Time to test-drive