Tutorials : The Power of Three - Eclipse, Tomcat, and Struts :

 

Reloading applications

You'll remember that the Tom1 application was defined in the server.xml file with a reloadable attribute. This means that whenever Tomcat discovers a changed file in WEB-INF/classes or WEB-INF/lib it'll reload the application. This is necessary in order for the changed file to have an effect. Be prepared to wait a few seconds before the reload actually happens. Checking for changed files naturally takes some resources from the web server, so it should only be used in a development environment.

The reload can be seen in Eclipse's console window. Here I've added an exclamation mark to "Hello World", and saved the servlet:

The highlighted lines show that the reload process has taken place.

It's also possible to do a manual reload by right-clicking on the project, selecting "Tomcat project/Reload this context":

This kind of reload is the same as the one the Tomcat Manager can do for you with this URL:

http://localhost:8080/manager/reload?path=/Tom1

Whether or not a project is reloadable may be set in project properties. Right click, select Tomcat:

 

Adding Struts to the environment

Struts is a J2EE servlet framework, and hence needs the war-file directory structure that a Tomcat project builds. It's therefore a fairly simple task to build a Struts project. I assume that you have available a download of Struts version 1.1. If not it's available from this address: http://jakarta.apache .org/struts.

In the webapps folder of the download you'll find several example applications. Let's take struts-blank, which is the simplest among them.

First we define a new Tomcat project, called StrutsBlank by following the steps described previously. Then import the struts-blank war-file:

Click Next. Browse to the directory that contains the war file and type "*.war" in the File name field. Click "Open" to see all the war files:

Select struts-blank.war and click Open and Finish in the next box. This'll create a complete Struts project including all necessary jar-files, tag libraries, and configuration files. Only one thing needs to be changed: struts-blank contains a Message Resource file called application.properties. It's located in WEB-INF/classes/resources, but also in WEB-INF/src/java/resources. Since Eclipse knows that the Java source is placed in the WEB-INF/src directory and the classes in WEB-INF/classes, it'll create a new classes folder called java/resources. As a consequence we now have application.properties in three places:

What a mess. But the cure is simple: right-click the project, select "Properties" and change the project's source folder from WEB-INF/src to WEB-INF/src/java:

You do this be selecting "StrutsBlank/WEB-INF/src", then click "Edit..." and then select the java folder. Then "OK" twice. As a consequence you'll have to place the source for new Java classes in the java folder.

Try the struts-blank application, but first reload Tomcat (so it'll recognize the new Eclipse project) and then enter this URL in the browser:

http://localhost:8080/StrutsBlank

The browser will then show this page:

From the URL field you can see that Struts has processed the Welcome action.

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.