95-733 Internet Technologies March 2007
Installing and Testing Course Software
0. Please try to avoid directory paths using spaces. Use an
underscore character instead.
1. Make a directory for downloads. Call it c:\downloads.
2. Download the following files from www.andrew.cmu.edu/~mm6/95-702/downloads and
place them in your c:\download directory:
jdk-1_5_0_08-windows-i586-p (JDK and JRE from Sun)
apache-tomcat-5.5.17.exe (Apache Tomcat Install)
eclipse-SDK-3.2-win32.zip (Eclipse IDE)
tomcatPluginV31 (Eclipse plugin from Sysdeo)
Xerces-J-bin.2.8.0.zip (Xerces XML Parser from Apache)
3. Expand the Java to C:\Java
Within this directory you should have C:\Java\jdk1.5.0_08
Note from TA: After the JDK and JRE have been installed (size: 118M),
there may be a Japanese pop-up window, which allows you to
install some Japanese support modules. You can choose
to skip it.
Expand Tomcat to C:\Tomcat_5.5
Note the use of underscore rather than space.
Within this directory you should have C:\Tomcat_5.5\bin, C:\Tomcat_5.5\common, etc.
Include examples and webapps when prompted.
Set Username and Password and remember these.
Set the port to 6502 (to stay away from Oracle's Tomcat)
Select the installed JRE that is under the new JDK that we just installed. Don't
use any other JRE.
Expand eclipse to C:\eclipse
Within this directory you should have C:\eclipse\eclipse.exe, etc.
Expand plugin to C:\EclipseTomcatPlugin
Within this directory you should have C:\EclipseTomcatPlugin\com.sysdeo.eclipse.tomcat_3.1.0
Copy the entire directory com.sysdeo.eclipse.tomcat_3.1.0 to C:\eclipse\plugins.
Expand Xerces to C:\Xerces
Within this directory you should have xerces-2_8_0/xercesImpl.jar
4. Use Start/Control Panel/System/Advanced/Environment Variables/System Variables/New to set the
following:
JAVA_HOME C:\Java\jdk1.5.0_08
JRE_HOME C:\Java\jdk1.5.0_08\jre
Path C:\Java\jdk1.5.0_08\jre\bin;C:\Java\jdk1.5.0_08\bin; {everything already there follows here}
5. Make a shortcut to eclipse and place it on your desktop. Right click
on shortcut properties and set target to
C:\eclipse\eclipse.exe -vm C:\Java\jdk1.5.0_08\jre\bin\javaw
6. Testing
C:\>java -version
java version "1.5.0_08"
C:\>javac -version
javac 1.5.0_08
C:\>echo %JAVA_HOME%
C:\Java\jdk1.5.0_08
C:\>echo %JRE_HOME%
C:\Java\jdk1.5.0_08\jre
7. Double click eclipse
Choose a workspace like C:\97-713\homework
Choose workbench
Select Windows/Preferences/Tomcat and select * Version 5.0 and set Tomcat home
to C:\Tomcat_5.5
8. Testing
Start eclipse
Select the little cat (Tomcat) without the x
Note from TA: If you have chosen to start Tomcat after you finished
Tomcat installation in step 3, here you may get an error
from Eclipse IDE saying the Tomcat service has been started
already. You can stop the Tomcat service outside of Eclipse
IDE and try to restart it inside Eclipse, to experience the
convenience of integration of Eclipse and Tomcat.
Visit Tomcat with your browser at http://localhost:6502
Run the servlets and JSP's under Examples
Select Tomcat Manager and see if your User Name and Password work
9. Publishing a Java Server Page
Double click eclipse
Choose a workspace like C:\97-713\homework
Choose workbench
Select Windows/Preferences/Tomcat and select * Version 5.0 and set Tomcat home
to C:\Tomcat 5.5 and select OK
Choose File/New/Other/Java/Tomcat Project/Next
Project Name CoolJSP Finish
On left pane expand the CoolJSP project (it should contain WEB-INF)
On left pane select CoolJSP and Right Click and select new file.
File Name MyCoolPage.jsp Finish
Enter this document:
<% java.util.Date d = new java.util.Date(); %>
Today is <%= d.toString() %>
Click the little disk to save everything.
Start Tomcat with the little cat.
Use a browser to visit http://localhost:6502/CoolJSP/MyCoolPage.jsp
10. Another tutorial covering this same topic is at
http://www-128.ibm.com/developerworks/library/os-ectom/
11. Publishing a servlet
Double click eclipse
Choose a workspace like C:\97-713\ServletExample
Choose workbench
Select Windows/Preferences/Tomcat and select * Version 5.0 and set Tomcat home
to C:\Tomcat 5.5 and select OK
Choose File/New/Other/Java/Tomcat Project/Next
Project Name ANewApp Finish
On left pane expand the ANewApp project (it should contain WEB-INF)
On left pane select ANewApp and Right Click and select new file.
File Name index.jsp Finish
Enter this document:
Introductions
Click the little disk to save everything.
Select ANewApp and right click
Select new/class and give it the name HandleForm
Enter this java servlet
// HandleForm.java
// An introductory servlet
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HandleForm extends HttpServlet{
public void doGet(HttpServletRequest req,
HttpServletResponse response)
throws ServletException,
IOException {
String personName = req.getParameter("personName");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String docType = "\n";
out.println(docType +
"\n" +
"Hi" + personName + "\n" +
"\n" +
" Hi"+ personName + "
\n" +
"");
}
}
In the left pane, select the WEB-INF folder
Right click WEB-INF and select new file
Enter file name web.xml and Finish
Enter this web.xml file. This file associates the name
ProcessForm with the servlet HandleForm.
TestServlet
HandleForm
TestServlet
/ProcessForm/*
Start Tomcat with the little cat.
Use a browser to visit http://localhost:6502/ANewApp/index.jsp
Enter your name and hit submit. The servlet should execute.
You may need to add servlet-api.jar to compile the servlet.
In Eclipse, right click the project. select Properties,
select Libraries and add an external jar - servlet-api.jar.
12. Using the XML parser
In Eclipse, select Window/Preferences/Tomcat/JVM Settings
Add a classpath "(before generated) " C:\Xerces\xerces-2_8_0\xercesImpl.jar
13. For stand alone XML applications you may need to include the parser in XercesImpl.jar into your Eclipse classpath.
File/New/Other/Java Project/ Next/UsingXerces
File/New/Class/NotifyStr
Copy NotifyStr.java into editor
To place the URL on the command line:
Run/Arguments enter URL in edit window
To place XercesImp.jar on the classpath
Window/Preferences/Java/Build Path/classpath Variables Assign Xerces_Home to XercesImpl.jar path.
Select project name/Project/Properties/Java Build Path/Libraries/Add Variable and select Xerces_Home and path
// *************************************************************
// NotifyStr.java
// Adapted from XML and Java by Maruyama, Tamura and Uramoto
import java.io.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
public class NotifyStr extends DefaultHandler
{
public static void main (String argv []) throws IOException, SAXException
{
if (argv.length != 1) {
System.err.println ("Usage: java NotifyStr filename.xml or URL");
System.exit (1);
}
XMLReader reader = XMLReaderFactory.createXMLReader(
"org.apache.xerces.parsers.SAXParser");
InputSource inputSource = new InputSource(argv[0]);
reader.setContentHandler(new NotifyStr());
reader.parse(inputSource);
System.exit (0);
}
public NotifyStr() {}
public void startElement(String namespaceURI, String localName,
String qName, Attributes aMap)
throws SAXException {
System.out.println(namespaceURI);
System.out.println(localName);
}
public void characters(char[] ch, int start, int length) throws
SAXException {
// build String from char array
String dataFound = new String(ch,start,length);
System.out.println("characters called:" + dataFound);
}
}
14. To submit homework
Select Project/File/Export/General/Archive File/Next/Name
blackboard site/tools/Digital Dropbox/
send the zip file to blackboard
15. Using Apache Axis for web services
a) Create a directory called c:\bats
and place this path in your path variable. The path
in the path variable is checked evry time you run
a program from the DOS command line. We will be
placing commands in batch files (with a .bat extension.)
b) Download axis-bin-1_4.zip from www.andrew.cmu.edu/~mm6/95-702/downloads
Unzip this file to a directory. I Unzipped this file to C:\
My Axis is now located here:
C:\axis-1_4
Copy the directory C:\axis-1_4\webapps\axis to
C:\Tomcat 5.5\webapps
A directory named axis us now under my (Tomcat)
webapps directory
c) Download Apache Ant apache-ant-1.6.5-bin.zip from
www.andrew.cmu.edu/~mm6/95-702/downloads
Unzip this file to a directory. I Unzipped this file to C:\
My ant binaries are now located here:
C:\ant\apache-ant-1.6.5\bin
Add this path to the front of your path variable.
See below on how to do this from Windows.
d) Download Sun's jaf-1_1-fr.zip from
www.andrew.cmu.edu/~mm6/95-702/downloads
Unzip this file to a directory. I Unzipped this file to C:\
My java activation framework is now located here:
C:\jaf\jaf-1.1
Copy C:\jaf\jaf-1.1\activation.jar to C:\Tomcat 5.5\common\lib
Also copy C:\jaf\jaf-1.1\activation.jar to C:\axis-1_4\lib
e) Download Sun's javamail-1_4.zip from
www.andrew.cmu.edu/~mm6/95-702/downloads
Unzip this file to a directory. I Unzipped this file to C:\javamail-1_4
My java mail api is now located here:
C:\javamail-1_4\javamail-1.4
Copy C:\javamail-1_4\javamail-1.4\mail.jar to C:\Tomcat 5.5\common\lib
Also copy C:\javamail-1_4\javamail-1.4\mail.jar to C:\axis-1_4\lib
f) We will also need to use the wsdl2java program. This program is
executed like this:
java org.apache.axis.wsdl.WSDL2Java (WSDL-file-URL)
I have a batch file called wsdl2java.bat (in c:\bats) with the
contents shown:
java org.apache.axis.wsdl.WSDL2Java %1
g) Set your environment variables:
Use Start/Control Panel/System/Advanced/Environment
Variables/System Variables/New or edit to set the following:
JAVA_HOME C:\Java\jdk1.5.0_08
JRE_HOME C:\Java\jdk1.5.0_08\jre
Path C:\ant\apache-ant-1.6.5\bin;{everything already there follows the semicolon}
AXIS_HOME C:\axis-1_4
ANT_HOME C:\ant\apache-ant-1.6.5
AXISCLASSPATH
C:\axis-1_4\lib\axis.jar;C:\axis-1_4\lib\axis-ant.jar;
C:\axis-1_4\lib\commons-discovery-0.2.jar;
C:\axis-1_4\lib\commons-logging-1.0.4.jar;
C:\axis-1_4\lib\jaxrpc.jar;
C:\axis-1_4\lib\log4j-1.2.8.jar;
C:\axis-1_4\lib\saaj.jar;
C:\axis-1_4\lib\wsdl4j-1.5.1.jar;
C:\axis-1_4\lib\mail.jar;
C:\axis-1_4\lib\activation.jar
CLASSPATH
%AXISCLASSPATH%;.
h) Add a file to your bats directory called adminclient.bat.
It should contain the single line:
java org.apache.axis.client.AdminClient -lhttp://localhost:6502/axis/services/AdminService deploy.wsdd
i) General Testing
Stop the server and run Tomcat from the start menu.
Visit Tomcat with a browser. My copy runs on port 6502.
http:\\localhost:6502
See if axis is available. Visit
http:\\localhost:6502\axis
Click the Validate link for further testing
If the hapiness page complains about security don't worry.
Click the list services link. There should be two services:
AdminService and Version
One nice test to run is by pointing your browser at
http://localhost:6502/axis/services/Version?method=getVersion
You should see an xml document when you view the source.
Type the command wsdl2java at the DOS prompt. You should see
the command's help file displayed.
Perhaps the best documentation is located at
file:///C:/axis-1_4/docs/install.html
j) Testing a web service.
a) Create a file called Calculator.java
public class Calculator {
public int add(int i1, int i2)
{
return i1 + i2;
}
public int subtract(int i1, int i2)
{
return i1 - i2;
}
}
b) compile the service
javac Calculator.java
c) Create a file called deploy.wsdd and place it in the same
directory as Calculator.class.
d) Copy the class file to Tomcat
copy Calculator.class C:\"Tomcat 5.5"\webapps\axis\WEB-INF\classes
e) Start Tomcat
f) Run the adminclient tool to notify axis that we want the calculator
class installed.
adminclient deploy.wsdd
g) Testing
Visit http://localhost:6502/axis/servlet/AxisServlet
If all went well you should see a Calculator service
16. Install TcpMon to watch SOAP traffic
a) TCPMon may be found at www.andrew.cmu.edu/~mm6/95-702/downloads/tcpmon-1.0-bin.zip
I downloaded this file and de-compressed it to C:\tcpmon-1.0-bin.
I created a new DOS batch file called tcpmon.bat and placed it in my c:\bats
directory. This directory is in my path variable. The content of this file is
java -cp C:\tcpmon-1.0-bin\tcpmon-1.0-bin\build\tcpmon-1.0.jar org.apache.ws.commons.tcpmon.TCPMon
There is a very nice tutorial that comes with this install.
b) Testing
Enter tcpmon at the DOS prompt