SWE 432 Servlet Deployment Instructions
10-March-2020
Please tell me if you find any errors or omissions in the document. -JO
The software engineering group has collaborated with VSE’s IT staff
to provide an application server for servlets and JSPs
for you to use as your target deployment computer.
This server supports J2EE with the open-source platform Tomcat.
I will use the name vs-swe432 in the course and in this page.
This page presents step-by-step instructions to deploy your Servlets
and JSPs to the Tomcat application server on vs-swe432.
The server is behind the VSE fire wall.
Therefore, you will need to use the Virtual Private Network (VPN) application
to access it from outside the off-campus.
Or, you can access it directly from on campus.
To access the server and deploy your code from outside the firewall,
follow these steps:
-
Review the information provided about the VPN tool from
http://labs.vse.gmu.edu/index.php/Services/VPN.
-
Follow the instructions to install the VPN tool on your computer.
If your browser hesitates to go to the VPN download page because of security certificate issues, it's okay.
Simply tell your browser to accept the certificate VSE uses.
-
Run the VPN tool.
You will need your Mason email username and password.
Once connected,
your computer will be given an IP address that will connect it to the network
within the VSE fire wall.
- Connect to the vs-swe432.vsnet.gmu.edu server using SSH or SFTP.
- Enter vs-swe432.vsnet.gmu.edu into the Host Name field,
your user name into the User Name field,
and 22 into the Port Number field.
-
For a complete walkthrough of setting up OpenVPN (and SSH) on Windows XP go to
http://labs.vse.gmu.edu/index.php/FAQ/FAQ
-
Please Note:
If you disconnect the VPN tool,
or the connection times out, your SSH or SFTP session will be lost.
Therefore SAVE YOUR WORK OFTEN.
- Note that your password on vs-swe432 is the same as your Mason email password.
Now that you are connected to the server,
you can deploy and test your code.
The server can accept many different formats, including WAR and .class.
The rest of these instructions assume you are deploying a simple .class file.
To deploy your servlet, follow these steps:
- Write your servlet to belong to a package belonging to your Mason username.
For example, I would add the command:
package offutt;
to my servlet.
- When compiling with javac, you will need to compile from “above” the directory:
javac offutt/Hello.java.
-
Make a directory for your Java class package under
/data/tomcat/apps-swe432/swe432/WEB-INF/classes.
- For example: mkdir /data/tomcat/apps-swe432/swe432/WEB-INF/classes/username
- Note: Use your Mason username as a name for the package and the directory
- Use the SSH Secure File Transfer Client (sftp)
to copy your .class files from your computer to the folder you just created on vs-swe432.
- Note: You can also use sftp to place the file into your home directory on vs-swe432,
then use the Unix move command (mv) to move the file
to the deployment directory through an ssh window on apps-swe432:
mv Hello.class /data/tomcat/apps-swe432/swe432/WEB-INF/classes/username
- Do not put your .java source files into the public directory!
This would be an honor code violation.
- You can also compile on the server.
To compile on the server, you will need to set your CLASSPATH variable:
CLASSPATH=$CLASSPATH:.:/usr/share/java/:/usr/share/java/servlet.jar ; export CLASSPATH
You can run this command from the command line each time you log in,
or you can put command in the file .bash_profile in your home directory.
- Test your servlet using the following URL:
-
NOTE: make sure that your files are readable.
- To make your files readable, run the Unix command on apps-swe432:
cd /data/tomcat/apps-swe432/swe432/WEB-INF/classes/username
chmod 644 *
J2EE applications can also be deployed as “WAR” files.
A Java WAR file contains a compressed directory structure that mirrors the directory structrure in a servlet context.
That is, it contains a
WEB-INF/classes/,
web.xml/, etc.
WAR files (with the extension .war) are placed in the top level tomcat directory
(/data/tomcat/apps-swe432/ on apps-swe432).
When tomcat sees the WAR file,
it unpacks the file into a directory, which becomes a new context.
So, if we deploy a WAR file called HelloWorld.war,
with a hello.jsp file contained at the root of the directory,
then the URL would be http://apps-swe432.vse.gmu.edu:8080/HelloWorld/hello.jsp.
WAR stands for
Web Application Archives.
WAR files can be created in three ways:
- With the packager tool distributed with the J2EE SDK.
- With the war task of the ant portable build tool, for example, ant.
- With the JAR tool distributed with the J2EE (and part of JDK).
If you arrange your application development directory in the structure required by the WAR format,
execute the following command in the top-level directory of the application:
jar cvf archiveName.war .
NOTE, never ever do this:
try
{
... ...
} catch(Exception e) {
System.out.println (e.getMessage());
System.exit (0);
}
The servlet is running inside Tomcat, so this will cause Tomcat to exit.
All of your classmates will be very angry!