RE: Problems in installing and deploying Apache soap
"Joe Brown" <[email protected]> Wed, 25 Feb 2004 12:14:34 -0500
| Newsgroups | gmane.text.xml.soap.devel |
|---|---|
| Message-ID | <[email protected]> |
Dibor, I am including some instructions for installing soap. If this isn't helpful, let me know. Place all files in same folder and open index.html Joe Brown -----Original Message----- From: Secka-Jallow, Dibor [mailto:[email protected]] Sent: Wednesday, February 25, 2004 11:24 AM To: [email protected] Subject: RE: Problems in installing and deploying Apache soap How did you install Apache soap? Where did you put your code? Thanks Dibor Secka-Jallow Web Developer Atlanta Housing Authority [email protected] 404-817-7370 -----Original Message----- From: [email protected] [mailto:[email protected]] Sent: Wednesday, February 25, 2004 11:20 AM To: [email protected] Subject: RE: Problems in installing and deploying Apache soap Hi, "I cannot find any of the classes to import to be able to compile my code" ð I'm also using Apache SOAP and had any problems concerning compiling ð They should be in some .jars (Don't remember any more) -----Original Message----- From: Secka-Jallow, Dibor [mailto:[email protected]] Sent: 25. helmikuuta 2004 18:12 To: [email protected] Subject: Problems in installing and deploying Apache soap I need some help or points to the right direction. I have installed Apache soap. I cannot find any of the classes to import to be able to compile my code. I am trying to create a web service to receive files and send an email to the clients. Can I do the coding in Jdeveloper and import the classes? How do I deploy the Apache soap web service to my Oracle 9ias Application running OC4J and oracle portal?? I subscribe to the soap user and soap dev. Any message I send comes back with this : Hi! This is the ezmlm program. I'm managing the [email protected] mailing list. Sorry, that message is not in the archive. Thanks Dibor Secka-Jallow Web Developer Atlanta Housing Authority [email protected] 404-817-7370
FAQ_Tomcat_SOAP_SSL.html
(text/html, 22.8 KB)
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="subject" content="Apache SOAP and SMTP">
<meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
<title>Setting up Apache Tomcat and SOAP for SSL communication</title>
<!-- saved from url=(0022)http://internet.e-mail -->
<style type="text/css">
<!--
H1 { font-family : Arial, Helvetica; font-size : 14pt }
H2 { font-family : Arial, Helvetica; font-style: italic; font-size : 12pt }
H3 { font-family : Arial, Helvetica; font-size : 10pt }
CODE { font-family : Courier New, Courier; font-size : 9pt; color : #0000ff }
PRE { font-family : Courier New, Courier; font-size : 9pt; color : #0000ff }
-->
</style>
</head>
<body link="#0000FF" vlink="#800080">
<h1>
Setting up Apache Tomcat and a Simple Apache SOAP Client for SSL Communication.</h1>
<h3>
By <a href="mailto:[email protected]">Peter Glynn</a> and <a href="mailto:[email protected]">Darrell
Drake</a>, with minor updates by <a href="mailto:[email protected]">Jonathan
Chawke</a>, April 2001.</h3>
<h2>
Introduction</h2>
This document gives steps involved in setting up Apache Tomcat and a simple
Apache SOAP client for <a href="http://developer.netscape.com/docs/manuals/security/sslin/contents.htm">SSL</a>
communication.
<br>The aim of this document is to allow a person with minimum Java security
to be able to set up SSL connection in a Apache SOAP/Tomcat Application.
The steps you will carry out are:
<ol TYPE="1">
<li>
Install the Java Secure Socket Extensions (JSSE) package (available from
Sun).</li>
<li>
Generate Client and Server Certificates for SSL communication.</li>
<ol TYPE="a">
<li>
Generate a Server Key and Certificate</li>
<li>
Export the Server Certificate</li>
<li>
Generate a Client Key and Certificate</li>
<li>
Export the Client Certificate</li>
<li>
Import the Certificates into the Keystores</li>
</ol>
<li>
Set up Tomcat for SSL Communication</li>
<li>
Modify the SOAP Client to use SSL</li>
</ol>
Also included in this document is:
<ul>
<li>
A short tutorial on creating X.509 Certificate Chains</li>
<li>
A section on troubleshooting SOAP and SSL installations</li>
</ul>
<h2>
Assumptions</h2>
It is assumed that you have installed <a href="http://xml.apache.org/soap">Apache
SOAP</a> and <a href="http://jakarta.apache.org/tomcat/">Apache Tomcat</a>,
and that the sample SOAP applications are working.
<h2>
Tools needed for Installation</h2>
<ul>
<li>
Apache SOAP download at <a href="http://xml.apache.org/dist/soap/">http://xml.apache.org/dist/soap/</a></li>
<li>
Java (tm) Secure Socket Extension (JSSE) 1.0.2 (jsse1.0.2) download at
<a href="http://java.sun.com/products/jsse/">http://java.sun.com/products/jsse/</a>
(free registration required)</li>
</ul>
<h2>
Step 1: Install JSSE</h2>
<ul>
<li>
Before you do anything, <b>read</b> the installation instructions for JSSE!
(they are available online at: <a href="http://java.sun.com/products/jsse/install.html">http://java.sun.com/products/jsse/install.html</a>).</li>
<li>
Add the JSSE jars to your classpath. This should hopefully add it to the
classpath of your Tomcat server. If not, add it to the classpath of the
Tomcat server or just copy the JSSE jar files to the lib directory of Tomcat
(e.g. <tt>C:\jakarta-tomcat-3.2.1\lib</tt>). This will automatically load
on start-up of Tomcat.</li>
<br>The JSSE 1.0.2 jars that you need in your classpath are:
<ul>
<li>
<tt>jsse.jar</tt></li>
<li>
<tt>jcert.jar</tt></li>
<li>
<tt>jnet.jar</tt></li>
</ul>
</ul>
<h2>
Step 2: Generate Client and Server Certificates</h2>
It is necessary to generate a Certificate for the client and the server.
These Certificates are then imported into a keystore, to which the client
and server connect.
<br>The keystore acts as a database for security certificates.
<br>You are going to use the <tt>keytool</tt> utility in the JDK to do
these tasks (see <a href="http://java.sun.com/products/jdk/1.2/docs/tooldocs/solaris/keytool.html">Sun's
documentation</a> for more information on this tool).
<h3>
Step 2a: Generate a Server Key and Certificate</h3>
Launch <tt>keytool</tt> from a shell (or command prompt) to generate your
public and private key.
<br>Note that the Certificate and keystore files will be generated in the
directory you run <tt>keytool</tt> from.
<p>Use <tt>keytool</tt> as follows:
<br><tt>keytool -genkey -alias tomcat-sv -dname "CN=[Common Name],OU=[Organisation
Unit], O=[Organisation Name], L=[Locality], S=[State Name], C=[Two-Letter
Country Code]" -keyalg RSA -keypass [private key password] -storepass [keystore
password] -keystore [keystore file name]</tt>
<p>For example, to generate a keystore (in file <tt>server.keystore</tt>)
for server <tt>soapsvr.test.tcd.ie</tt> using password <tt>changeit</tt>
(for both the keystore and the certificate) in the Computer Engineering
group at Trinity College Dublin, Ireland, one would type the following:
<tt>keytool -genkey -alias tomcat-sv -dname "CN=soapsvr.test.tcd.ie, OU=ComputerEngineering,
O=Trinity College Dublin, L=Dublin, S=Dublin, C=IE" -keyalg RSA -keypass
changeit -storepass changeit -keystore server.keystore</tt>
<p>Note that
<ul>
<li>
The RSA algorithm is used to generate certificates.</li>
<li>
Ensure that the 'CN' field that you specify when you create the server
certificate matches the name of the machine on which you're running tomcat,
or your browser will complain about certificate name mis-matches (not a
problem on a test server, a big problem on a production server!).</li>
</ul>
<h3>
Step 2b: Export the Server Certificate</h3>
>From command prompt run this command to export your certificate from the
keystore into an external file (we do this so we can import the certificate
into the client's keystore as a trusted certificate).
<pre>
keytool -export -alias tomcat-sv -storepass changeit -file server.cer -keystore server.keystore
</pre>
If everything works, you should now have a file called <tt>server.cer</tt>
which contains your server's certificate.
<h3>
Step 2c: Generate a Client Key and Certificate</h3>
This step is very similar to the generation of the server key and certificate
- it uses the same <tt>keytool</tt> tool with different parameters.
<br>Note that the keystore file name has changed (it is now <tt>client.keystore</tt>).
Use <tt>keytool</tt> as follows:
<p><tt>keytool -genkey -alias tomcat-cl -dname "CN=Client,OU=TRL, O=IBM,
L=Yamato-shi, S=Kanagawa-ken, C=JP" -keyalg RSA -keypass changeit -storepass
changeit -keystore client.keystore</tt>
<h3>
Step 2d: Export the Client Certificate</h3>
This step is very similar to the export of the server certificate - it
uses the same <tt>keytool</tt> tool with different parameters:
<pre>
keytool -export -alias tomcat-cl -storepass changeit -file client.cer -keystore client.keystore
</pre>
If everything works, you should now have a file called <tt>client.cer</tt>
which contains your client's certificate.
<h3>
Step 2e: Import the Certificates into the Keystores</h3>
We want the client certificate to be added to the server's keystore, and
the server's certificate to be added to the client's keystore.
<br>Doing this will mean that the client and server trust one another.
<br>Import the server certificate into the client's keystore:
<br><tt>keytool -import -v -trustcacerts -alias tomcat -file server.cer
-keystore client.keystore -keypass changeit -storepass changeit</tt>
<br>Import the client certificate into the server's keystore: <tt>keytool
-import -v -trustcacerts -alias tomcat -file client.cer -keystore server.keystore
-keypass changeit -storepass changeit</tt>
<h2>
Step 3: Set up Tomcat for SSL Communication</h2>
<h3>
Step 3a: Modify your Tomcat Configuration File</h3>
You need to amend server.xml (located in the <tt>conf</tt> directory of
Apache Tomcat). Add the following lines to the xml file:
<pre>
<Connector className ="org.apache.tomcat.service.PoolTcpConnector">
<Parameter name="handler" value ="org.apache.tomcat.service.http.HttpConnectionHandler"/>
<Parameter name="port" value="8443"/>
<Parameter name="socketFactory" value="org.apache.tomcat.net.SSLSocketFactory" />
<b><Parameter name="keystore" value="c:\apache\soap-2_3\bin\server.keystore" />
</b><Parameter name="keypass" value="changeit"/>
<Parameter name="clientAuth" value="true"/>
</Connector>
</pre>
Note that the value used for the <tt>keystore</tt> parameter (shown in
bold above) may be different on your machine; it should contain the full
path and filename of the server keystore file (<tt>server.keystore</tt>)
generated in Step 2a above. Note also that the port number we chose to
use for SSL in the above configuration is 8443. The port normally used
for HTTPS is 443, but for testing we are using 8443.
<h3>
Step 3a: Test your HTTPS server</h3>
At this point, you should restart your Tomcat server. It will probably
take a bit longer to start up. You can now use a web browser to test that
it is working.
<br>Test the SSL installation by opening your browser and typing in the
following URL:
<pre> https://servername:8443/index.html</pre>
Note that <tt>servername</tt> should be replaced with the name of the server
on which you are running Tomcat. If SSL is working then you should see
the default home page for your Tomcat installation.
<br>Your browser may generate a warning about un-trusted certificates or
unrecognised authorities (just click OK).
<h2>
Step 4: Modify the SOAP Client to use SSL</h2>
<h3>
Step 4a: Java SSL Client</h3>
You need to set up properties before you call the URL in the SOAP client.
Here is an example SOAP client that calls a SOAP service using HTTPS on
a Tomcat server:
<pre>
// classes for ssl
import javax.net.ssl.SSLSocketFactory;
import java.security.Security;
...
//
// setup some ssl-specific stuff
//
// specify the location of where to find key material for the default TrustManager (this overrides jssecacerts and cacerts)
<b> System.setProperty("javax.net.ssl.trustStore","C:\\jdk1.3\\bin\\client.keystore");
</b> // use Sun's reference implementation of a URL handler for the "https" URL protocol type.
System.setProperty("java.protocol.handler.pkgs","com.sun.net.ssl.internal.www.protocol");
// dynamically register sun's ssl provider
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
// note that the url is using https protocol and not http
URL urls = new URL( "https://localhost:8443/soap/servlet/rpcrouter");
//
// prepare and then execute a SOAP method
//
// output some basic information
System.out.println("\nUsing " + urls.getProtocol() + " to connect to " + urls.getHost() + " on port #" + urls.getPort());
// prepare the service invocation as usual
Call call = new Call();
String urn = "urn:demo:checkflight";
call.setTargetObjectURI( urn );
call.setMethodName( "getFlightInfo" );
// set up any parameters as usual
...
// Invoke the call
Response resp;
try
{
resp = call.invoke(urls, "");
}
catch (SOAPException e)
{
System.err.println("Caught SOAPException (" + e.getFaultCode() + "): " + e.getMessage());
e.printStackTrace();
return;
}
</pre>
Once again the bold directory path is a pointer to the client keystore.
This may have to be changed depending on where you generated it. Also note
that the url is <b>https</b> and not http. It's an easy mistake to make!
<h3>
Step 4b: Java SSL Client with Proxy [Optional]</h3>
If your client needs to use a proxy server in order to access the SOAP
service, then add the following lines to your code:
<pre>
System.setProperty("https.proxyHost", "proxy"); // set name of proxy server that supports ssl
System.setProperty("https.proxyPort", "8080"); // set port number for proxy server that supports ssl
</pre>
Use the following for Proxy without SSL:
<pre>
System.setProperty("proxySet", "true"); // enable proxying
System.setProperty("proxyHost", "proxy"); // set name of proxy server
System.setProperty("proxyPort", "8080"); // set port number for proxy server
</pre>
If you are using Socks proxy then set these (system) properties:
<pre>
System.setProperty("socksProxyHost", "hostname"); // set name of socks server
System.setProperty("socksProxyPort", "1080"); // set port number for socks server
</pre>
<h2>
Creating X.509 Certificate Chains</h2>
By Darrell Drake
<h3>
Overview</h3>
This instruction set covers creating mutual trust between two entities
using a certificate chains (my certificate with an attached lineage of
public certificates), which is more practical in a production environment
than the minimal security approach. In this case a principal is trusted
if any of the certificates in its chain are trusted. Additional tool needed:
IBM KeyMan, which can read and issue certificates from keystores in the
JKS and PKCS12 formats. Other formats (e.g. IBM CMS Key Database) don't
work well, at least in my experience.
<h3>
Downloading KeyMan</h3>
KeyMan can be downloaded from: <a href="http://www.alphaworks.ibm.com/tech/keyman">http://www.alphaworks.ibm.com/tech/keyman</a>.
<h3>
Creating a new Keystore and Keypair using KeyMan</h3>
<ul>
<li>
From the initial window, click on the "create new" icon on the left</li>
<br>OR
<br>from an already-open KeyMan window, under the File menu choose New.
<li>
Specify the type of keystore (pkcs 7, 12 and JKS are options)</li>
<li>
Immediately the template is created</li>
<li>
Under the Actions menu choose generate key</li>
<li>
Select the desired key algorithm and length, click OK</li>
<li>
WAIT</li>
</ul>
<h3>
Opening an existing keystore file</h3>
<ul>
<li>
From the initial window, click on the "open" icon on the right</li>
<br>OR
<br>from an already-open KeyMan window, under the File menu choose Open
<li>
Select "local resource", click next</li>
<li>
Enter or browse for the filename, click next</li>
<li>
If applicable, enter the password protecting the file</li>
</ul>
<h3>
Generating a self-signed certificate using KeyMan (for new serverkeystore)</h3>
<ul>
<li>
Make sure the new key pair (and just the key pair) is selected</li>
<li>
Under the Actions menu, choose Create Certificate</li>
<li>
Choose Self-Signed Certificate, click next</li>
<li>
Fill in the principal information as requested, click next</li>
<li>
Select the period of validity for the new certificate, click next</li>
</ul>
<h3>
Requesting a client certificate using keytool</h3>
<tt>-- using keytool (after creating keyEntry "alias")</tt>
<br><tt>keytool -certreq {-alias alias} {-sigalg sigalg} {-file certreq_file}
[-keypass keypass] {-storetype storetype} {-keystore keystore} [-storepass
storepass] {-v} {-Jjavaoption}</tt>
<p> If you leave the <tt>"-file certreq_file"</tt> part out, the pkcs10
request will be printed to your standard output, which you can highlight
and copy to the system clipboard, transfer to a file or directly into KeyMan
(see next step "issuing certificate"). The principal information in the
request will be what you entered when using the "-genkey" command earlier.
<h3>
Requesting a client certificate using KeyMan (after creating a key pair)</h3>
<ul>
<li>
Make sure the new key pair (and just the key pair) is selected</li>
<li>
Under the Actions menu, choose Request Certificate</li>
<li>
Choose "Generate a PKCS#10 Request", click next</li>
<br>OR
<br>If you want to get a commercial certificate for your server, choose
"Go online to a CA" (I don't know the remaining steps for doing that)
<li>
Fill in the principal information as requested, click next</li>
<li>
Enter the filename where you want to save the request,</li>
<br>OR
<br>Choose to copy the request to the system clipboard, click next
<li>
The request is now stored in the location that you specified.</li>
</ul>
<h3>
Issuing a client certificate using KeyMan</h3>
(aka acting as your own CA, signing a PKCS#10 certificate request)
<ul>
<li>
Open the keystore that contains your server's private certificate</li>
<li>
Under the Actions menu, choose Create Certificate</li>
<li>
Choose Sign a PKCS#10 request, click next</li>
<li>
Enter or browse for the filename containing the request,</li>
<br>OR
<br>Choose to load the request from the system clipboard (if you stored
it there), click next
<li>
Review the principal info (recommended: verify it offline in production
scenario)</li>
<li>
Select the period of validity for the new certificate, click next</li>
<li>
Enter the [path-qualified] filename where you will store the new certificate,
click next</li>
<li>
NOT RECOMMENDED: saving the certificate to the clipboard (created a single
cert entry on the client side instead of chain in my experience).</li>
</ul>
<h3>
Importing your new certificate from the CA's Using Keytool</h3>
(after importing server's cert as trusted CA cert)
<br><tt>keytool -import {-alias alias} {-file cert_file} [-keypass keypass]
{-storetype storetype} {-keystore keystore} [-storepass storepass] {-v}
{-Jjavaoption}</tt>
<br>It should simply say "certificate was added to keystore" and finish
with no dialog. ["alias" is your original keyEntry; the default self-signed
certificate should now be overwritten with the CA-signed certificate]
<h3>
Importing your new certificate from the CA's Using KeyMan</h3>
<ul>
<li>
Under the File menu, choose Import</li>
<li>
Select "local resource", click next</li>
<li>
Enter or browse for the filename ("cert_file"), click next</li>
<li>
You should get a popup dialog saying "Private Certificate Received", click
OK</li>
</ul>
<h3>
Saving the new or changed keystore file using KeyMan</h3>
<ul>
<li>
Under the File menu choose Save</li>
<li>
Enter the [path-qualified] filename (leave the default file format if PKCS12),
click ok</li>
<li>
Enter the password if prompted</li>
</ul>
NOTE: If the server gets a certificate chain from a higher CA entity, the
client could import that higher entity's certificate as a trusted CA certificate
(it may already have that certificate by default), and it would thus trust
the server certificate.
<h2>
Troubleshooting</h2>
One extremely useful tip for troubleshooting SSL is to use the built-in
SSL debugging features:
<br><tt>java -djavax.net.debug=help YourClassname</tt>
<br>(this will give you a help message for SSL debugging features)
<h3>
Unknown Protocol Error</h3>
Problem: <tt>Exception in thread "main" java.net.MalformedURLException:
unknown protocol: https</tt>
<br>Solution: Ensure that the ssl-specific initialisation code happens
before you create a <tt>java.net.URL</tt> object.
<h3>
Unrecognized SSL handshake</h3>
Problem: <tt>ContextManager: IOException reading request, ignored - javax.net.ssl.SSLException:
Unrecognized SSL handshake.</tt>
<br>Solution: The most likely problem is either:
<br>(a) your url is <tt>http://</tt> instead of <tt>https://</tt>
<br>or
<br>(b) your client and server are using different versions of soap.jar
(possibly 2.0/2.1).
<h3>
Bad Certificate Error</h3>
Redo Steps 2, 3 and 4.
<h3>
Socket Write Error</h3>
Problem: <tt>java.lang.reflect.InvocationTargetException: java.net.SocketException:
Connection aborted by peer: socket write error</tt>
<br>Solution: This problem occurs because (for some reason) the server
cannot authenticate the client. Change the following line in server.xml:
<pre><Parameter name="clientAuth" value="false"/></pre>
<h3>
Keytool Error</h3>
Problem: <tt>keytool error: java.io.IOException: Keystore was tampered
with, or password was incorrect</tt>
<br>Solution: Try deleting the keystore file and re-creating it (see the
instructions at the beginning of this page).
<h2>
Further Information</h2>
<h3>
SOAP</h3>
<ul>
<li>
The SOAP Protocol: <a href="http://www.w3.org/TR/SOAP/">http://www.w3.org/TR/SOAP/</a>.</li>
<li>
Apache SOAP: <a href="http://xml.apache.org/soap/">http://xml.apache.org/soap/</a>.</li>
</ul>
<h3>
SSL</h3>
<ul>
<li>
Sun JSSE FAQ: <a href="http://java.sun.com/products/jsse/FAQ.html">http://java.sun.com/products/jsse/FAQ.html</a></li>
<li>
"Modifying your Java Client to use Secure Sockets Layer": <a href="http://as400bks.rochester.ibm.com/html/as400/v4r5/ic2924/index.htm?info/java/rzaha/sslcex02.htm">http://as400bks.rochester.ibm.com/html/as400/v4r5/ic2924/index.htm?info/java/rzaha/sslcex02.htm</a></li>
<li>
Notes on SSL error codes: <a href="http://www.mozilla.org/projects/security/pki/nss/ref/ssl/sslerr.html">http://www.mozilla.org/projects/security/pki/nss/ref/ssl/sslerr.html</a></li>
<li>
Cryptographic Downloads (includes OpenSSL): <a href="http://www2.psy.uq.edu.au/~ftp/Crypto/">http://www2.psy.uq.edu.au/~ftp/Crypto/</a></li>
</ul>
</body>
</html>
index.html
(text/html, 6.6 KB)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<META name="GENERATOR" content="IBM WebSphere Homepage Builder V4.0.0 for Linux">
<title>Apache SOAP Installation Instructions</title>
</head>
<body bgcolor="#FFFFFF">
<h2 align="center">Installation Instructions for Apache SOAP
v2.3</h2>
<p>The Apache-SOAP distribution can be installed for use as a
client or as a server. This document provides installation
instructions for both cases and also has a trouble shooting
section to help sort out common installation related problems.</p>
<p><strong>Important note for users upgrading from older versions
of Apache SOAP: </strong>If you are upgrading from an older
version of Apache SOAP then you must be sure to remove any cached
class files, DeployedServices.ds files etc. or you will get a
variety of strange errors. If you deployed Apache SOAP using a
Web app, then any old expanded WARs must also be removed.
Services deployed into the old version cannot be automatically
transferred to the new version - you must manually re-deploy them
to the new version. That is, the old DeployedServices.ds file
cannot be read by this new version. We apologize in advanced for
the pain this will cause some of our users. If you are in fact
upgrading from an older version of Apache SOAP and get any funny,
unusual looking exceptions or behavior, then most likely the
problem is some unexpected interaction with code from the older
version. Please clean up and try again or try installing in a
virgin environment.</p>
<h3>Unpack the Distribution</h3>
<p>We assume that you have downloaded the binary distribution of
Apache-SOAP and have extracted the archive into the directory <tt>/foo</tt>.
Thus the files from the distribution are in the directory <tt>/foo/soap-2_3/</tt>.</p>
<p>Note that if you are on a Win32 machine then you should
replace "/" with "\" as you follow these
instructions.</p>
<h3>Client-Side Instructions</h3>
<p>Your classpath must contain <strong>/foo/soap-2_3/lib/soap.jar</strong>
and the following:</p>
<ul>
<li><strong>mail.jar</strong> from <a
href="http://java.sun.com/products/javamail/">JavaMail</a></li>
<li><strong>activation.jar </strong>from <a
href="http://java.sun.com/products/beans/glasgow/jaf.html">JavaBeans
Activation Framework</a></li>
<li>a <a href="http://java.sun.com/xml/xml_jaxp.html"
target="_top">JAXP</a> compatible, namespace-aware XML
parser such as <a href="http://xml.apache.org/xerces-j">Apache
Xerces</a> (v1.1.2 or later). If you have other non-namespace
aware XML parsers on your classpath then the namespace-aware
parser must be at the front of your classpath. Apache
SOAP will not work otherwise.</li>
</ul>
<p>Additionally, to run the samples that came with the
distribution, add <strong>/foo/soap-2_3</strong> to your
classpath.</p>
<h3>Server-Side Instructions</h3>
<p>You need to ensure that the server classpath contains all of
the above components. In addition, to implement services in
scripting languages (such as the calculator sample), add <strong>bsf.jar</strong>
from <a
href="http://oss.software.ibm.com/developerworks/projects/bsf">BSF</a>
and <strong>js.jar</strong> from <a
href="http://www.mozilla.org/rhino/">Rhino</a> to your classpath.</p>
<p>To install the server-side of Apache-SOAP, you need a Web
application server that supports servlets and JSPs (if you want
to run the admin client as well). </p>
<p><strong>Installing the router servlets and admin client:</strong>
The instructions for how to install varies from one app server to
another. Here are instructions for the following servers:</p>
<ul>
<li><a href="tomcat.html">Apache Tomcat v3.2</a></li>
<li><a href="weblogic51.html">BEA WebLogic Application Server
v5.1</a></li>
<li><a href="weblogic60.html">BEA WebLogic Application Server
v6.0</a></li>
<li><a href="websphere.html">IBM WebSphere v3.5</a></li>
<li><a href="iPlanet.html">iPlanet Application Server 6.0</a></li>
<li><a href="JRun.html">JRun 3.0</a></li>
</ul>
<p>Didn't find yours listed? See whether the instructions for
Tomcat (for example) gives you enough hints on how to do it. If
not, first check the FAQ (<a
href="http://xml.apache.org/soap/faq" target="_top">http://xml.apache.org/soap/faq</a>)
and if that fails try asking on the Apache-SOAP user's list; more
than likely someone else has done it already. You can subscribe
to the list here: <a href="http://xml.apache.org/soap/mail.html"
target="_top">http://xml.apache.org/soap/mail.html</a>.</p>
<h3><a name="test-install">Testing Your Server-Side Installation</a></h3>
<p>Point your browser to:</p>
<blockquote>
<p><code>http://localhost:port/soap/servlet/rpcrouter</code> </p>
</blockquote>
<p>and</p>
<blockquote>
<p><code>http://localhost:port/soap/servlet/messagerouter</code>
</p>
</blockquote>
<p>where <code>port</code> is <code>8080</code>, or <code>4040</code>,
or whatever port your particular HTTP server is listening on. The
browser should display the following:</p>
<blockquote>
<h4>SOAP (RPC|Message) Router</h4>
<p><code>Sorry, I don't speak via HTTP GET- you have to use
HTTP POST to talk to me. </code></p>
</blockquote>
<p>If you don't see this message, your server is not configured
correctly. If you do, you now know your router URLs: they are the
URLs you pointed your browser to.</p>
<p>To test whether you have proper server and client-side stuff
set up, follow the client-side instructions to put the right
things on your classpath and type the following:</p>
<blockquote>
<p><code>java org.apache.soap.server.ServiceManagerClient </code><code><em>rpc-router-url</em></code><code>
list</code> </p>
</blockquote>
<p>where the first argument above is the RPC router URL you
determined earlier (the one with "rpcrouter" at the end).
[NOTE: The above command line is one long line; your browser may
show it on two lines but do NOT put it on two lines!]</p>
<p>If this succeeds you will see it return with no output or with
a list of URIs. Either case is successful - it indicates what
services are already deployed on your server. If you get anything
else then its time to <a href="../trouble/index.html">troubleshoot</a>.
</p>
<h3>SSL Instructions</h3>
<p><strong>Getting SSL support up and running:</strong> The
instructions for how to get SSL support running vary from server
to server: Here are instructions for the following servers:</p>
<ul>
<li><a href="FAQ_Tomcat_SOAP_SSL.html">Apache Tomcat v3.2</a></li>
</ul>
<p> </p>
</body>
</html>
index-j.html
(text/html, 4.6 KB)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-2022-jp">
<META name="GENERATOR" content="IBM HomePage Builder 2001 V5.0.3 for Windows">
<title>Apache SOAP Installation Instructions</title>
</head>
<body bgcolor="#FFFFFF">
<P>
<i>
$BLu!'F|K\%"%$!&%S!<!&%(%`(B($B3t(B) $B%=%U%H%&%'%";v6HIt(B $BJF;}(B $B9,<w(B
<blockquote>
<font color="blue">
$B$3$N%I%-%e%a%s%H$O!"(BApache SOAP 2.0$B%l%Y%k$N$b$N$rF|K\8lLu$7$?$b$N$G!"(B
$B:G?7HG$N$b$N$H$O0[$J$k2DG=@-$,$"$j$^$9!#$^$?!"%&%'%V>e$G8+$k>l9g!"0lIt(B
$B$N%j%s%/$,@Z$l$F$$$k2DG=@-$,$"$j$^$9!#(BApache SOAP$B$N%G%#%l%/%H%j$N3:Ev(B
$B%U%!%$%k$HCV$-49$($k$3$H$G!"%*%j%8%J%k$N%Z!<%8$K%j%s%/$5$;$k$3$H$,$G$-(B
$B$^$9!#(B
</font>
</blockquote>
</i>
</P>
<h1 align="center">Apache-SOAP Version 2.0: $BF3F~<j=g(B</h1>
<p align="center">2000$BG/!!(B8$B7n(B</p>
<p>Apache-SOAP$B$O!"%/%i%$%"%s%H!"$^$?$O%5!<%P!<$H$7$FF3F~$9$k$3$H$,$G$-$^$9!#$3$N;qNA$O!"APJ}$NF3F~<j=g$r<($7!"F3F~$K$^$D$o$k$h$/$"$k%H%i%V%k$r2r7h$9$k$?$a$N!V%H%i%V%k%7%e!<%F%#%s%0!W$N>O$r@_$1$F$"$j$^$9!#(B</p>
<h2>$B6&DL$N<j=g(B</h2>
<p>$B$9$G$K(BApache-SOAP$B$N%P%$%J%jG[I[%U%!%$%k$,%@%&%s%m!<%I$5$l$F$*$j!"%G%#%l%/%H%j!<(B/foo$B$K2rE`$5$l$F$$$k$b$N$H$7$FOC$r?J$a$^$9!#$=$N>l9g!"G[I[%U%!%$%k$+$i2rE`$5$l$?%U%!%$%k$O%G%#%l%/%H%j!<(B
/foo/soap-2_0/ $B$K2rE`$5$l$^$9!#(B</p>
<p>Win32$B4D6-$G:n6H$9$k>l9g$O!"(B"/"
$B$r(B "\" $B$HFI$_BX$($FFI$_?J$a$F$/$@$5$$!#(B</p>
<p><strong>XML Parser</strong>: Apache-SOAP $B$O!"(B <a
href="http://xml.apache.org/xerces-j">Apache Xerces</a> (Java) version 1.1.2 $B$^$?$O$=$l0J9_$N%P!<%8%g%s$rI,MW$H$7$^$9!#$3$l$i$N%P!<%8%g%s$O!"L>A06u4V$r%5%]!<%H$9$k(B
<a
href="http://www.w3.org/TR/DOM-Level-2/">DOM level 2</a> $B$rDs6!$7$^$9!#$b$7!"$9$G$KJL$N(BXML$B%Q!<%5!<!J$^$?$O!"(Borg.w3c.dom.*$B%$%s%?!<%U%'%$%9$r$b$C$F$$$k$G$"$m$&(BJAR$B%U%!%$%k!K$r$*;}$A$J$i!"(BXerces
$B$N(B xerces.jar $B%U%!%$%k$r%/%i%9%Q%9$N;O$a$K$*$/$3$H$,=EMW$G$9!#$=$&$7$J$$$H(B
Apache-SOAP $B$OF0$-$^$;$s!#(B</p>
<TABLE>
<TBODY>
<TR>
<TD bgcolor="#cccccc">$BFC$K(BTomcat$B$K:G=i$+$i4^$^$l$F$$$k(BSun$B$N(BXML
Parser$B!J(Bjakarta-tomcat\lib\xml.jar$B!K$N$3$H$r8@$C$F$$$^$9!#(BTomcat$B$G$O%G%U%)%k%H$G%/%i%9%Q%9$K(Bxerces.jar$B$h$j$bA0$K(Bxml.jar$B$r4^$a$k$N$G!"<B9T;~$K%(%i!<!J8E$$(BDOM$B$N%Q%C%1!<%8$r;H$&$?$a$K(BDOM
Level2$B$N%a%=%C%I$,8+$D$+$i$J$$!K$,H/@8$7$^$9!#(B</TD>
</TR>
</TBODY>
</TABLE>
<P>$BB>$N%Q!<%5!<$r;H$($k$h$&$K$9$k$3$H$b$G$-$k$N$G$7$g$&$1$l$I!"8=:_$N%P!<%8%g%s$G$O$=$l$r$&$^$$$3$H<B8=$G$-$F$$$^$;$s$7!"$3$l0J>e$N@bL@$O$3$3$G$O$$$?$7$^$;$s!#(B</P>
<p><strong>Classpath</strong>: <tt>/foo/soap-2_0/lib/soap.jar</tt> $B$r%/%i%9%Q%9$KDI2C$7$F$/$@$5$$!#%5%s%W%k$rF0:n$5$;$k$N$G$"$l$P!"(B
<tt>/foo/soap-2_0</tt> $B$bI,MW$G$9!#(B</p>
<h2>$B%/%i%$%"%s%HB&$N<j=g(B</h2>
<p>$B6&DL$N<j=g$,=*$o$l$P!"=`Hw40N;$G$9!#(B</p>
<h2>$B%5!<%P!<B&$N<j=g(B</h2>
<p>Apache-SOAP $B$r%5!<%P!<B&$KF3F~$9$k$K$O!"%5!<%V%l%C%H$H#J#S#P$r%5%]!<%H$9$k%&%'%V!&%"%W%j%1!<%7%g%s!&%5!<%P!<$,I,MW$G$9!#(B</p>
<p><strong>RPC$B%k!<%?!<$H4IM}%/%i%$%"%s%H$NF3F~(B:</strong> $B$=$l$>$l$N%5!<%P!<Kh$NF3F~<j=g$G$9!#(B</p>
<ul>
<li><a href="tomcat.html">Apache Tomcat v3.1</a></li>
<li><a href="weblogic.html">WebLogic Application Server v5.1</a></li>
<li><a href="websphere-j.html">IBM WebSphere v3.5</a></li>
<li>JRun vx.y.z</li>
<li>Microsoft Internet Information Server</li>
</ul>
<p>$B$*;H$$$N%5!<%P!<$,0lMw$K$"$j$^$;$s$+!)Nc$H$7$F(BTomcat$B$N<j=g$r8+$F$_$F$/$@$5$$!#$I$&$9$l$P$$$$$+$o$+$k$O$:$G$9!#$b$7J,$+$i$J$$$h$&$J$i!"(B
Apache-SOAP $B%f!<%6!<%:%j%9%H$KLd$$9g$o$;$F$_$^$7$g$&!#$b$&$9$G$K$@$l$+$,$d$C$F$_$?$+$b$7$l$^$;$s!#%j%9%H$K$O$3$A$i$+$iEPO?$G$-$^$9!#(B:
<a href="http://xml.apache.org/soap/mail.html">http://xml.apache.org/soap/mail.html</a>.</p>
<h1>$BF3F~;~$NLdBj$N2r7hJ}K!(B</h1>
<table border="1" width="100%">
<tr>
<th width="25%">Problem</th>
<th width="50%">Comments</th>
</tr>
<tr>
<td width="25%">$B!V(BgetAttributeNS is not found$B!W(B<BR>
$B$H$$$&Nc30$K$J$C$?(B</td>
<td width="50%">$B%/%i%9%Q%9$,@5$7$/$"$j$^$;$s!#(B - $B8E$$%Q!<%5!<$+!!(Borg.w3c.dom.*$B%/%i%9!!$r4^$s$G$$$kJL$N(BJAR$B%U%!%$%k$,(B
Xerces 1.1.2 $B0J>e$N(B xerces.jar $B$h$j$b@h$K;2>H$5$l$F$$$^$9!#(B</td>
</tr>
<tr>
<td width="25%">x</td>
<td width="50%">y</td>
</tr>
<tr>
<td width="25%">x2</td>
<td width="50%">y2</td>
</tr>
<tr>
<td width="25%">x3</td>
<td width="50%">y3</td>
</tr>
</table>
</body>
</html>
iPlanet.html
(text/html, 23.7 KB)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Installing Apache SOAP on iPlanet</TITLE>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 5.50.4613.1700" name=GENERATOR>
<META content="Christopher P Kampemeier" name=Author></HEAD>
<BODY bgColor=#ffffff>
<H1><B><FONT size=+3>Installing Apache SOAP on iPlanet Application
Server</FONT></B></H1><I>Updated May 24, 2001</I>
<P>This document describes how to install Apache SOAP 2.3 on iPlanet Application
Server 6.0 and how to exercise the Apache SOAP samples.
<BLOCKQUOTE>
<P><A href="#install-apache-soap">Installing Apache SOAP</A>
<P><A href="#cfg-client">Configuring the Client Environment</A>
</P></BLOCKQUOTE>
<BLOCKQUOTE>
<P><A href="#register-samples">Registering and Exercising the Apache SOAP
Samples</A> </P>
<P><A href="#next-steps">Next Steps</A></P>
<P><A href="#db-file">Changing Location of the Deployed Services Configuration
File </A></P></BLOCKQUOTE>
<H1><A name=install-apache-soap></A><B>Installing Apache SOAP</B> </H1>
<OL>
<LI>Deploy the Apache SOAP Web Application
<LI>Add Supporting Libraries to Server Classpath
<LI>Test the Apache SOAP Installation<BR></LI></OL>
<H2><B>1. Deploy the Apache SOAP Web Application</B></H2>
<OL>
<LI>Start the iPlanet Application Server Deployment Tool.
<LI>Open the <FONT face="Courier New, Courier, mono" color=#000099
size=2>soap.war</FONT> file from the expanded Apache SOAP distribution. This
file is located under <FONT face="Courier New, Courier, mono" size=2><I><FONT
color=#000099>soapinstalldir</FONT></I><FONT
color=#000099>/webapps/soap.war</FONT></FONT>. When asked to add iPlanet
deployment descriptor, click on OK. If informed that a number of class
references cannot be resolved, ignore the warning as supporting libraries will
be added to the server's classpath in the next section.
<LI>Add the <FONT face="Courier New, Courier, mono" color=#000099
size=2>soap.jar</FONT> file to the <FONT face="Courier New, Courier, mono"
color=#000099 size=2>WEB-INF/lib/ </FONT>area of the WAR file. Alternatively,
you can add the <FONT face="Courier New, Courier, mono" color=#000099
size=2>soap.jar</FONT> file to the start of the application server's
classpath. See the next section on adding supporting libraries to the
application server classpath.
<LI>Save the modified <FONT face="Courier New, Courier, mono" color=#000099
size=2>soap.war</FONT> file.
<LI>Deploy the <FONT face="Courier New, Courier, mono" color=#000099
size=2>soap.war</FONT> module to the application server. </LI></OL>
<P>Upon deployment, the SOAP web application is installed in the<FONT
face="Courier New, Courier, mono" size=2> <I><FONT
color=#000099>installdir</FONT></I><FONT
color=#000099>/APPS/modules/soap/</FONT></FONT> directory of the application
server. If you browse the <FONT face="Courier New, Courier, mono" color=#000099
size=2>WEB-INF/classes/</FONT> directory of the deployed web application, you'll
note that the Java classes for Apache SOAP sample services are included in the
web application.</P>
<H2>3. Add Supporting Libraries to Server Classpath</H2>
<P>Download a copy of a JAXP compatible, namespace-aware XML parser such as
Xerces. Version 1.4 or later of the <A
href="http://xml.apache.org/xerces-j/">Xerces Java Parser</A> has been shown to
work properly with Apache SOAP 2.3.</P>
<P>To avoid conflicts with the XML parser bundled with the application server,
you must ensure that the JAXP compatible parser library appears at the start of
the application server's classpath.</P>
<P><FONT color=#000000>If you plan on exercising the Apache SOAP samples that
rely on server side scripting languages such as JavaScript, then download the
Bean Scripting Framework and Rhino JavaScript libraries and add the <FONT
face="Courier New, Courier, mono" color=#000099 size=2>bsf.jar</FONT> and <FONT
face="Courier New, Courier, mono" color=#000099 size=2>js.jar</FONT> files to
the front of the application server's classpath. </FONT>Refer to the <A
href="http://xml.apache.org/soap/docs/index.html">Apache SOAP installation
instructions</A> for pointers to these supporting JAR files.</P>
<P>Since<FONT face="Courier New, Courier, mono" color=#000099 size=2>
mail.jar</FONT> and <FONT face="Courier New, Courier, mono" color=#000099
size=2>activation.jar </FONT>are already present in the server classpath, you do
not need to perform any special setup to enable Apache SOAP to access these
libraries.</P>
<H3>Classpath Settings on Windows</H3>
<P>On Windows the application server uses the CLASSPATH setting defined in the
application server's registry. (Setting the Windows system environment variable
CLASSPATH will not affect the setting used by the application server). To modify
the registry: </P>
<OL>
<LI>Execute <FONT face="Courier New, Courier, mono"><FONT color=#000099
size=2>kregedit</FONT></FONT>, the application server's registry editor.
<LI>Navigate to <FONT face="Courier New, Courier, mono"><FONT color=#000099
size=2><I>SOFTWARE\iPlanet\Application Server\6.0</I></FONT></FONT>
<LI>Select <FONT face="Courier New, Courier, mono"><FONT
size=-1><I>Java\ClassPath</I></FONT></FONT> and the select
<I>Edit->Modify</I> to change the value.
<LI>Add the Rhino<FONT face="Courier New, Courier, mono" color=#000099 size=2>
js.jar</FONT> (optional), <FONT face="Courier New, Courier, mono"
color=#000099 size=2>bsf.jar</FONT> (optional) and Xerces JAR files to front
of the classpath:
<BLOCKQUOTE>
<P><FONT face="Courier New, Courier, mono"><FONT
face="Courier New, Courier, mono"><FONT face="Courier New, Courier, mono"
color=#000099
size=2>d:\rhino\js.jar;d:\bsf-2_2\lib\bsf.jar;d:\xerces-1_4_0\xerces.jar;</FONT></FONT><FONT
color=#000099 size=-1>...</FONT></FONT></P></BLOCKQUOTE>
<LI>Restart the application server to reload the registry settings. </LI></OL>
<H3>Classpath Settings on UNIX (iPlanet Application Server 6.0 SP2)</H3>
<P>Modify the <FONT face="Courier New, Courier, mono"><FONT size=-1><I><FONT
color=#000099 size=2>installdir</FONT></I><FONT color=#000099
size=2>/ias/bin/kjs</FONT></FONT></FONT> script to include the supporting JAR
files. The kjs script starts the JVM that houses the application server's
web and EJB containers. </P>
<P><FONT face="Courier New, Courier, mono"><FONT size=-1><I><FONT color=#000099
size=2>installdir</FONT></I><FONT color=#000099
size=2>/ias/bin/kjs</FONT></FONT></FONT><FONT face="Courier New, Courier, mono"
color=#000099 size=2>:</FONT>
<BLOCKQUOTE>
<P><FONT face="Courier New, Courier, mono" color=#000099 size=2>...</FONT>
<FONT face="Courier New, Courier, mono" color=#000099
size=2><BR><B>SOAP_CLASSES=/opt/rhino/js.jar:/opt/bsf-2_2/lib/bsf.jar:/opt/xerces-1_4_0/xerces.jar</B><BR>CLASSPATH=<B>$SOAP_CLASSES:</B>$THIRD_PARTY_JDBC_CLASSPATH:$GX_ROOTDIR/classes/java/jdbc20.jar:</FONT>
<FONT face="Courier New, Courier, mono" color=#000099
size=2><BR>$GX_ROOTDIR/classes/java/javax.jar:...</FONT></P></BLOCKQUOTE>
<P>Restart the application server to pick up the classpath changes.</P>
<H3>Classpath Settings on UNIX (iPlanet Application Server 6.0 SP3)</H3>
<P>In iPlanet Application Server 6.0 SP3 the classpath setting used by the kjs
shell script is housed in a common environment setting shell script. Make
changes to the kjs CLASSPATH variable in the</P>
<P><FONT face="Courier New, Courier, mono"><FONT size=-1><I><FONT color=#000099
size=2>installdir</FONT></I><FONT color=#000099
size=2>/ias/iasenv.ksh</FONT></FONT></FONT><FONT
face="Courier New, Courier, mono" color=#000099 size=2>: </FONT></P>
<BLOCKQUOTE>
<P><FONT face="Courier New, Courier, mono" color=#000099 size=2>...</FONT>
<FONT face="Courier New, Courier, mono" color=#000099 size=2><BR># Union of
all
CLASSPATHS<BR><B>SOAP_CLASSES=/opt/rhino/js.jar:/opt/bsf-2_2/lib/bsf.jar:/opt/xerces-1_4_0/xerces.jar
</B><BR>export
CLASSPATH=<B>$SOAP_CLASSES</B>:${TOMCAT_DIR}/jasper.jar:...</FONT></P></BLOCKQUOTE>
<P>Restart the application server to pick up the classpath changes.</P>
<H2><B>4. Test the Apache SOAP Installation</B></H2>
<P>Access the following URL to start the administrative interface: </P>
<BLOCKQUOTE>
<P><A href="/NASApp/soap/admin/index.html"><FONT
face="Courier New, Courier, mono" size=2>http://<web server
host>/NASApp/soap/admin/index.html</FONT></A></P></BLOCKQUOTE>
<P>Access the RPC Router and Message Router Servlets by accessing the following
URLs:</P>
<BLOCKQUOTE>
<P><A href="/NASApp/soap/servlet/rpcrouter"><FONT
face="Courier New, Courier, mono" size=2>http://<web server
host>/NASApp/soap/servlet/rpcrouter</FONT></A></P>
<P><A href="/NASApp/soap/servlet/messagerouter"><FONT
face="Courier New, Courier, mono" size=2>http://<web server
host>/NASApp/soap/servlet/messagerouter</FONT></A> </P></BLOCKQUOTE>
<P>If your Apache SOAP installation is correct, the browser will display:</P>
<BLOCKQUOTE>
<P><FONT face="Courier New, Courier, mono" color=#000099 size=2>SOAP
(RPC|Message) Router<BR>Sorry, I don't speak via HTTP GET- you have to use
HTTP POST to talk to me. </FONT></P></BLOCKQUOTE>
<P>Now that you've performed a basic test of the environment, you are ready to
configure your client environment and exercise sample applications.</P>
<P>Since the application server's web container does not by default load<FONT
face="Courier New, Courier, mono" color=#000099 size=2> index.html</FONT> files,
you must include the index.html file names in the URLs. Otherwise, you will
encounter a GX Error in the browser when attempting to access a URL such as
<FONT face="Courier New, Courier, mono" color=#000099
size=2>NASApp/soap/admin/</FONT>.</P>
<H1><A name=cfg-client></A>Configuring the Client Environment</H1>
<P>To register SOAP services and to run Java-based client applications, you must
add several JAR files to your client's classpath:</P>
<TABLE cellPadding=3 width="71%" border=1>
<TBODY>
<TR>
<TD width="22%">JAR</TD>
<TD width="39%">Description</TD>
<TD width="39%">Location</TD></TR>
<TR>
<TD width="22%"><FONT face="Courier New, Courier, mono" color=#000099
size=2>mail.jar</FONT></TD>
<TD width="39%">JavaMail API</TD>
<TD width="39%"><FONT face="Courier New, Courier, mono" color=#000099
size=2><I>installdir</I>/ias/classes/java/</FONT></TD></TR>
<TR>
<TD width="22%"><FONT face="Courier New, Courier, mono" color=#000099
size=2>activation.jar</FONT></TD>
<TD width="39%">JavaBeans Activation Framework</TD>
<TD width="39%"><I><FONT face="Courier New, Courier, mono" color=#000099
size=2>installdir</FONT></I><FONT face="Courier New, Courier, mono"
color=#000099 size=2>/ias/classes/java/</FONT></TD></TR>
<TR>
<TD width="22%"><FONT face="Courier New, Courier, mono" color=#000099
size=2>soap.jar</FONT></TD>
<TD width="39%">Apache SOAP infrastructure</TD>
<TD width="39%"><I><FONT face="Courier New, Courier, mono" color=#000099
size=2>soapinstalldir</FONT></I><FONT face="Courier New, Courier, mono"
color=#000099 size=2>/lib/soap.jar</FONT></TD></TR>
<TR>
<TD width="22%"><FONT face="Courier New, Courier, mono" color=#000099
size=2>xerces.jar</FONT> (or equivalent)</TD>
<TD width="39%">A JAXP compatible, namespace-aware XML parser such as
Xerces.</TD>
<TD width="39%"><I><FONT face="Courier New, Courier, mono" color=#000099
size=2>xercesinstalldir</FONT></I><FONT face="Courier New, Courier, mono"
color=#000099 size=2>/xerces.jar</FONT></TD></TR></TBODY></TABLE>
<P>To register and run the Apache SOAP 2.3 samples, you also need to add the
location of the samples directory to your client classpath. </P>
<P>On Windows, the client classpath setting might resemble the following:</P>
<BLOCKQUOTE>
<P><FONT face="Courier New, Courier, mono" color=#000099 size=2>set
IAS_HOME=d:\iplanet\ias6\ias<BR>set
CLASSPATH=%IAS_HOME%\classes\java\mail.jar;%IAS_HOME%\classes\java\activation.jar;<BR>c:\xerces-1_4_0\xerces.jar;c:\soap-2_3\lib\soap.jar;c:\soap-2_3;%CLASSPATH%
</FONT></P></BLOCKQUOTE>
<P>On UNIX, the client classpath setting might resemble the following:</P>
<BLOCKQUOTE>
<P><FONT color=#000099>export <FONT face="Courier New, Courier, mono"
size=2>IAS_HOME=/usr/iplanet/ias6/ias</FONT><BR><FONT
face="Courier New, Courier, mono" size=2>export
CLASSPATH=$IAS_HOME/classes/java/mail.jar:$IAS_HOME/classes/java/activation.jar:<BR>/opt/xerces-1_4_0/xerces.jar:/opt/soap-2_3/lib/soap.jar:/opt/soap-2_3:$CLASSPATH</FONT></FONT></P></BLOCKQUOTE>
<H1><A name=register-samples></A><B>Registering and Exercising the Apache SOAP
Samples</B> </H1>
<P>Each sample bundled with Apache SOAP 2.3 includes a script to register and
exercise the samples. Since the supporting Java classes for the Apache SOAP
sample services have already been deployed as part of the SOAP web application,
you do not need to move these classes to the application server. The sample
scripts will only register the already deployed SOAP services with the Apache
SOAP runtime.</P>
<P>1. Edit testit Scripts to Reflect RPC Router URL<BR>2. Run testit
Scripts<BR>3. Troubleshooting<BR></P>
<H2>1. Edit testit Scripts to Reflect RPC Router URL</H2>
<P>Go to the<FONT face="Courier New, Courier, mono" size=2> <I><FONT
color=#000099>soapinstalldir</FONT></I><FONT
color=#000099>/samples/addressbook/</FONT></FONT> directory and edit either the
testit.cmd or testit.sh script depending on your OS platform. You will need to
perform a replace all on the URL of the rpcrouter servlet to match your
application server deployment.</P>
<P>For example, throughout the testit script, the string:</P>
<BLOCKQUOTE>
<P><FONT face="Courier New, Courier, mono" color=#000099
size=2>http://localhost:8080/soap/servlet/rpcrouter </FONT></P></BLOCKQUOTE>
<P>will need to be changed to:</P>
<BLOCKQUOTE>
<P><FONT face="Courier New, Courier, mono" color=#000099
size=2>http://<hostname>:<port>/NASApp/soap/servlet/rpcrouter</FONT></P></BLOCKQUOTE>
<H2>2. Run the testit Script</H2>
<P>Doublecheck to ensure that your client's classpath is set appropriately. Then
execute the testit script. For example, when running the addressbook sample, you
should see the following output in the client window:</P>
<BLOCKQUOTE><PRE><FONT color=#000099>D:\soap-2_3\samples\addressbook>testit<BR>This test assumes a server URL of http://127.0.0.1/NASApp/soap/servlet/rpcrouter</FONT></PRE><PRE><FONT color=#000099>Deploying the addressbook service...
.
Verify that it's there
Deployed Services:
urn:AddressFetcher
.
Getting info for "Mr Good"</FONT></PRE><PRE><FONT color=#000099>123 Main Street
Anytown, NY 12345
(123) 456-7890
.
Adding "John Doe"
John Doe has been added.
.
Query "Mr Doe" to make sure it was added</FONT></PRE><PRE><FONT color=#000099>123 Main Street
AnyTown, SS 12345
(800) 555-1212
...
<Listing><BR> <Name>Mary Smith</Name><BR> <Address><BR> <StreetNum>888</StreetNum><BR> <StreetName>Broadway</StreetName><BR> <City>Somewhere</City><BR> <State>FL</State><BR> <Zip>87654</Zip><BR> <PhoneNumber><BR> <AreaCode>222</AreaCode><BR> <Exchange>333</Exchange><BR> <Number>4444</Number><BR> </PhoneNumber><BR> </Address><BR> </Listing><BR></AddressBook><BR>.<BR>Undeploy it now<BR>.<BR>Verify that it's gone<BR>Deployed Services: </FONT></PRE></BLOCKQUOTE>
<P>If you successfully ran the address sample, then proceed to the <A
href="#next-steps">Next Steps</A>.<BR></P>
<H2>3. Troubleshooting</H2>
<P>If you encounter the following messages when running a sample, the most
likely cause is not having the JAXP compatible parser library at the front of
the server's classpath:</P>
<BLOCKQUOTE><PRE><FONT color=#000099>D:\soap-2_3\samples\addressbook>testit
This test assumes a server URL of http://127.0.0.1/NASApp/soap/servlet/rpcr
Deploying the addressbook service...
Ouch, the call failed:
<B>Fault Code = SOAP-ENV:Server.Exception:
Fault String = java.lang.NoSuchMethodError
</B>... </FONT></PRE></BLOCKQUOTE>
<P>This error occurs because the XML parser bundled with the application server
does not contain a class required by Apache SOAP. Once you place a JAXP
compatible parser at the front of the server's classpath, you will solve this
problem.</P>
<P>If you encounter errors when running the Calculator sample, ensure that
you've added both the <FONT face="Courier New, Courier, mono" color=#000099
size=2>bsf.jar</FONT> and<FONT face="Courier New, Courier, mono" color=#000099
size=2> js.jar</FONT> libraries to the start of the application server's
classpath.<BR></P>
<H1><A name=next-steps></A>Next Steps</H1>
<P>Try the remaining samples. Review the readme file for each sample to
understand the intent of the sample.</P>
<P>Experiment by modifying the <FONT face="Courier New, Courier, mono"
color=#000099 size=2>testit</FONT> scripts to leave services registered. Restart
the application server to observe that registration of services is persistent
across server restarts. </P>
<P>Access the Apache SOAP administrative interface to list the registered
services:</P>
<BLOCKQUOTE>
<P><A href="/NASApp/soap/admin/index.html"><FONT
face="Courier New, Courier, mono" size=2>http://<web server
host>/NASApp/soap/admin/index.html</FONT></A></P></BLOCKQUOTE>
<P>Select the <I>List</I> option to list the deployed services. Drill down into
each service to see the detailed configuration of the service. Since the
Calculator service is based on JavaScript, you will see the script code for this
service as you list it in the administrative interface.</P>
<H1><A name=db-file></A>Changing the Location of the Deployed Services
Configuration File </H1>
<P>The Apache SOAP infrastructure relies on a file named <FONT
face="Courier New, Courier, mono" color=#000099
size=2>DeployedServices.ds</FONT> to retain the configuration of deployed SOAP
services. This file enables the Apache SOAP infrastructure to reload service
configuration data as the application server is restarted. When Apache SOAP is
deployed to iPlanet Application Server, the default location for this file
is:</P>
<BLOCKQUOTE>
<P><FONT face="Courier New, Courier, mono" size=2><I><FONT
color=#000099>installdir</FONT></I><FONT
color=#000099>/ias/DeployedServices.ds</FONT></FONT></P></BLOCKQUOTE>
<P>You can override this default location by creating a <FONT
face="Courier New, Courier, mono" color=#000099 size=2>soap.xml</FONT> file
containing the path and file name of a services configuration file. The Apache
SOAP web application's deployment descriptor also needs to be modified to refer
to the location of the soap.xml configuration file.</P>
<P>If you've already deployed SOAP services using the default services
configuration file, copy the content of the <FONT
face="Courier New, Courier, mono" color=#000099
size=2>DeployedServices.ds</FONT> file to the new location of the services
configuration file. (You may change the name of the file as desired).</P>
<P>To change the default location of the services configuration file, you must
follow these steps:</P>
<P>1. Create a <FONT face="Courier New, Courier, mono" color=#000099
size=2>soap.xml</FONT> file containing a pointer to the new location of the
services configuration file.<BR>2. Open <FONT face="Courier New, Courier, mono"
color=#000099 size=2>soap.war</FONT> in Deployment Tool<BR>3. Add initialization
parameters to the rpcrouter and messagrouter servlets. These parameters point to
the location of a new <FONT face="Courier New, Courier, mono" color=#000099
size=2>soap.xml</FONT> file.<BR>4. Copy old <FONT
face="Courier New, Courier, mono" color=#000099
size=2>DeployedServices.ds</FONT> file to new location. (optional)<BR>5. Redploy
the <FONT face="Courier New, Courier, mono" color=#000099 size=2>soap.war</FONT>
module.<BR>6. Restart the application server.</P>
<H2>Creating the soap.xml File</H2>
<P>By default, the <FONT face="Courier New, Courier, mono" color=#000099
size=2>soap.xml</FONT> file does not exist in a simple installation of Apache
SOAP. If you want to change the location of the services configuration file, you
must create a <FONT face="Courier New, Courier, mono" color=#000099
size=2>soap.xml</FONT> file that refers to the new services configuration file.
(In the next section, you will modify the web application to point to the
location of the <FONT face="Courier New, Courier, mono" color=#000099
size=2>soap.xml</FONT> file).</P>
<P>For the purposes of specifying the location of a service configuration file,
the <FONT face="Courier New, Courier, mono" color=#000099 size=2>soap.xml</FONT>
file takes the following form:</P>
<BLOCKQUOTE><PRE><FONT color=#000099><soapServer><BR> <configManager value="org.apache.soap.server.DefaultConfigManager" ><BR> <option name="filename" value="d:\soap-2_3\DeployedServices.ds" /><BR> </configManager><BR></soapServer></FONT></PRE></BLOCKQUOTE>
<H2>Adding ConfigFile Servlet Initialization Parameter</H2>
<P>In the <FONT face="Courier New, Courier, mono" color=#000099
size=2>web.xml</FONT> file, the initialization parameters in the web application
deployment descriptor takes the following form:</P>
<BLOCKQUOTE><PRE><FONT color=#000099><servlet><BR> <servlet-name>messagerouter</servlet-name><BR> <display-name>Apache-SOAP Message Router</display-name><BR> <servlet-class>org.apache.soap.server.http.MessageRouterServlet</servlet-class><BR> <init-param><BR> <param-name>faultListener</param-name><BR> <param-value>org.apache.soap.server.DOMFaultListener</param-value><BR> </init-param>
<B><init-param><BR> <param-name>ConfigFile</param-name><BR> <param-value>d:\soap-2_3\soap.xml</param-value><BR> </init-param></B><BR></servlet></FONT></PRE></BLOCKQUOTE>
<P>The new<FONT size=2> <FONT face="Courier New, Courier, mono"
color=#000099><init-param></FONT></FONT> must be added to the <FONT
face="Courier New, Courier, mono" color=#000099 size=2><servlet></FONT>
section for both the <FONT face="Courier New, Courier, mono" color=#000099
size=2>messagerouter</FONT> and <FONT face="Courier New, Courier, mono"
color=#000099 size=2>rpcrouter</FONT> servlets.</P>
<P>To make this change via the Deployment Tool, follow these steps:</P>
<OL>
<LI>Start the Deployment Tool and open the <FONT
face="Courier New, Courier, mono" color=#000099 size=2>soap.war</FONT> file
that you modified earlier.
<LI>Click on the WAR module and click on <I>Componenet View</I>.
<LI>Select the <FONT face="Courier New, Courier, mono" color=#000099
size=2>messagerouter</FONT> servlet, right click, and select <I>Edit
Descriptor</I>.
<LI>Under the <I>Init Param</I> tab, add a new parameter matching the
description above.
<LI>Repeat for the <FONT face="Courier New, Courier, mono" color=#000099
size=2>rpcrouter</FONT> servlet.
<LI>Close the descriptor windows and save the WAR file.
<LI>Redeploy the WAR file and restart the application server. </LI></OL>
<P>Now comment out the undeploy steps in several of the sample <FONT
face="Courier New, Courier, mono" color=#000099 size=2>testit</FONT> scripts for
the sample applications. Then rerun these scripts. Restart the application
server and use the Apache SOAP administrative interface to ensure that the
service configuration was persisted to the new configuration file. Open the
services configuration file in an editor to double check that the services are
being registered in the new file.</P>
<HR width="100%" SIZE=1>
</BODY></HTML>
JRun.html
(text/html, 2.8 KB)
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>Apache SOAP Installation Instructions for JRun 3.0</title>
</head>
<body bgcolor="#FFFFFF">
<h1 align="center">Apache-SOAP Version 2.3: Installing the Server-Side Under JRun 3.0</h1>
<p><strong>IMPORTANT</strong>: JRun comes with an XML parser, which will by default hide Xerces and therefore cause problems with your SOAP installation. Please follow step 1 below!</p>
<ol>
<li>Open up JRun's global.properties file (in <code>path-to-JRun/lib</code>)
and add the Xerces .jar file to the beginning of the jrun.classpath line.
Mine looks like this:
<br>
<blockquote><code>jrun.classpath=E:/xerces-1_2_3/xerces.jar;{jrun.rootdir}/lib/ext;{jrun.rootdir}/lib/jrun.jar;{jrun.rootdir}/lib/install.jar</code></blockquote>
<li>Go into the JMC, and select the "Web Applications" section of your server
(I use the JRun Default Server). Click on "deploy an application".<br>
<br>
<li>Select the Apache-SOAP /webapps/soap directory (under java/ in the source distribution, or off the root directory of the binary dist.) in the "Servlet War File
or Directory" box.<br>
<br>
<li>Name the application (I call it "xml-soap"), and pick a base URL (I use
"/soap")<br>
<br>
<li>Select a deploy directory (I use the default, which is JRun's default
server directory, plus the name of the app, so for me it ends up being <code>C:/JRun/servers/default/xml-soap</code><br>
<br>
<li>Click "deploy"<br><i>(at this point you should get a message telling you the app has been successfully deployed)</i>
<br>
<br>
<li>Go to the "java settings" area of your default server, and add the
Apache-SOAP jar file and base directory to the classpath. For the source distribution, these would be <code>SOAPROOT/java/build/lib/soap.jar</code> and <code>SOAPROOT/java/build</code>. For the binary distribution, they would be <code>SOAPROOT/lib/soap.jar</code> and <code>SOAPROOT</code>. Mine looks like this (source dist, living at D:/xml-soap):<br>
<pre>{jrun.rootdir}/servers/lib
{jrun.server.rootdir}/lib
D:/xml-soap/java/build/lib/soap.jar
D:/xml-soap/java/build</pre>
<li>Restart the server. <b>NOTE: You must shut down and restart BOTH the admin
server and the default server for the change you made to the
global.properties file to take. That only needs to be done once.</b><br>
<br>
<li>Try it out - access <a href="http://localhost/soap/servlet/rpcrouter">http://localhost/soap/servlet/rpcrouter</a> and see
if you get the "I can't do GET" message.</ol>
If the above worked, you know the servlet was succesfully installed. You should now be able to deploy services by pointing your browser at:
<blockquote><a href="http://localhost/soap/index.html">http://localhost/soap/index.html</a></blockquote>
<p>Happy SOAP-ing!</p>
</body>
</html>
tomcat.html
(text/html, 3.6 KB)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Apache SOAP & Tomcat Installation Instructions</title>
</head>
<body bgcolor="#FFFFFF">
<h1 align="center">Apache-SOAP Version 2.3: Installing the Server Side
Under Apache Tomcat v3.2</h1>
<h2>Getting Tomcat ready:</h2>
<p><strong>IMPORTANT</strong>: Tomcat comes with an XML parser (lib/xml.jar)
which has the DOM level 1 interfaces. Even if you put Xerces 1.1.2's
xerces.jar in your classpath, the wrong interfaces are found by
any Java code running in Tomcat because the shell script / batch
file that runs Tomcat puts the user's classpath at the end. So,
you must edit tomcat.sh or tomcat.bat in the bin/ directory and
put xerces.jar at the BEGINNING of the classpath the script
builds. </p>
<p>If you run startup.bat, then line 105 (or there abouts) of <b>tomcat.bat</b>
should look like this (line 69 for Tomcat 3.2.1) :</p>
<blockquote>
<code>set CP=path-to-xerces\xerces.jar;%CLASSPATH%;%CP%</code>
</blockquote>
<p>If you run startup.sh, add the following line to <b>tomcat.sh</b> after
line 113 (or there abouts), so long as it's before the export line:</p>
<blockquote>
<code>CLASSPATH=path-to-xerces/xerces.jar:${CLASSPATH}</code>
</blockquote>
<h2>Deploying Apache-SOAP on Tomcat:</h2>
<p>There are two different ways to actually deploy Apache SOAP on Tomcat:</p>
<h3>Method 1: Deploying the web archive.</h3>
<p>The Apache SOAP distribution includes a web archive at <code>/soap-2_3/webapps/soap.war</code>.
Simply drop this web archive into Tomcat's webapps directory (i.e. <code>%tomcat_home%/webapps</code>).
If you deploy Apache SOAP into Tomcat in this manner, you will not need to have anything from the
<code>/soap-2_3</code> directory on your server's classpath (the relevant items are included in the web
archive). Note: If you copy the web archive into the webapps directory while Tomcat is running, Tomcat
will need to be restarted before the Apache SOAP web application can be accessed.</p>
<p>Keep in mind that if you want to replace the deployed Apache SOAP web application with a
later version that you will probably have to shut the server down, remove the expanded
<code>%tomcat_home%/webapps/soap</code> directory, and replace the
<code>%tomcat_home%/webapps/soap.war</code> file with the newer one.</p>
<h3>Method 2: Creating a new <Context> in Tomcat's server.xml file.</h3>
<p>Simply add a new <code><Context></code> element into
<code>%tomcat_home%/conf/server.xml</code>:</p>
<code><Context path="/soap" docBase="path-to-apache-soap/webapps/soap"
debug="1" reloadable="true">
</Context></code>
<p>Now, make sure you have the jar files from the lib directory
of this distribution on your classpath and start up tomcat. Also,
you will want to have on the classpath any of your code that you
want to deploy as services (e.g. <code>/soap-2_3</code> if you want to deploy
any of the included samples).</p>
<h2>Accessing the Apache SOAP context:</h2>
<p>You should be able to deploy services by pointing a browser to</p>
<blockquote>
<code><a href="http://hostname:port/soap">http://hostname:port/soap</a></code>
</blockquote>
<p>where hostname is the host on which Tomcat is running and port
is the port. See the User's Guide for details on the
administration tool. The SOAP end-point for invoking services on
this server is:</p>
<blockquote>
<code><a href="http://hostname:port/soap/servlet/rpcrouter">http://hostname:port/soap/servlet/rpcrouter</a></code>
</blockquote>
<p>Happy SOAP-ing!</p>
</body>
</html>
weblogic51.html
(text/html, 2.2 KB)
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>Apache SOAP Installation Instructions</title>
</head>
<body bgcolor="#FFFFFF">
<h1 align="center">Apache-SOAP Version 2.3: Installing the Server-Side Under WebLogic
Application Server 5.1</h1>
<p><strong>IMPORTANT</strong>: WebLogic comes with an XML parser. So, you must
edit startWeblogic.cmd or startWeblogic.sh in the weblogic root directory and
put xerces.jar at the BEGINNING of WEBLOGIC_CLASSPATH environment variable.</p>
<p>If you run startWeblogic.cmd, then add following at the beginning of WEBLOGIC_CLASSPATH
setting at line 74:</p>
<blockquote>
<pre>path-to-xerces\xerces.jar;path-to-apache-soap\lib\soap.jar</pre>
</blockquote>
<p>If you run startWeblogic.sh, add the following to PRE_CLASSPATH setting at
line 33:</p>
<blockquote>
<pre>path-to-xerces/xerces.jar:path-to-apache-soap/lib/soap.jar</pre>
</blockquote>
<p>The easiest way to set up for WebLogic is to:</p>
<p>1. Copy the path-to-apache-soap/webapps/soap directory into path-to-weblogic-root/myserver/public_html
directory. After copying the directory structure looks like path-to-weblogic/myserver/public_html/soap/WEB-INF
etc. </p>
<p>2. Add the following two lines to weblogic.properties file -
weblogic.httpd.register.soap/servlet/rpcrouter=org.apache.soap.server.http.RPCRouterServlet
weblogic.httpd.initArgs.soap/servlet/rpcrouter=ServicesStore=DeployedServices.ds
</p>
<p>If you want to run the samples from Apache-SOAP make sure to add <path-to-apache-soap>
to WEBLOGIC_CLASSPATH or PRE_CLASSPATH as explained above.</p>
<p>You should be able to deploy services by pointing a browser to</p>
<blockquote>
<pre><a href="http://hostname:port/soap">http://hostname:port/soap</a></pre>
</blockquote>
<p>where hostname is the host on which WebLogic is running and port is the port.
See the User's Guide for details on the administration tool. The SOAP end-point
for invoking services on this server is:</p>
<blockquote>
<pre><a href="http://hostname:port/soap/servlet/rpcrouter">http://hostname:port/soap/servlet/rpcrouter</a></pre>
</blockquote>
<p>Happy SOAP-ing!</p>
</body>
</html>
weblogic60.html
(text/html, 3.3 KB)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0037)http://www.almaer.com/weblogic60.html -->
<HTML><HEAD><TITLE>Apache SOAP Installation Instructions - BEA Weblogic 6.0</TITLE>
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
<META content="Dion Almaer" name=author>
<META content="MSHTML 5.50.4613.1700" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff>
<H1 align=center>Apache-SOAP Version 2.3: Installing the Server-Side Under BEA
WebLogic Application Server 6.0</H1>
<P>Installing SOAP with BEA WebLogic is very straight foreward. <BR>The steps
are: <BR>
<UL>
<LI>Install the soap web app
<LI>Put the soap.jar into the web app's classpath
<LI>Access the soap web app
<LI>Optionally: switch out for a new xerces parser
<LI>Optionally: configure the soap.xml </LI></UL><BR>
<H2>Install the soap web app</H2>Copy the /path-to-apache-soap/webapps/soap to
your applications directory For example: To install into the "mydomain" plug the
directory into: <BR>c:/bea/wlserver6.0/mydomain/application/soap <BR>
<H2>Put the soap.jar into the web app's classpath</H2>1. Make a directory
c:/bea/wlserver6.0/mydomain/application/soap/WEB-INF/lib <BR>2. Copy soap.jar to
that lib directory <BR>
<H2>Access the soap web app</H2>
<P>You should be able to deploy services by pointing a browser to</P>
<BLOCKQUOTE><PRE><A href="http://hostname:port/soap">http://hostname:port/soap</A></PRE></BLOCKQUOTE>
<P>where hostname is the host on which WebLogic is running and port is the port.
See the User's Guide for details on the administration tool. The SOAP end-point
for invoking services on this server is:</P>
<BLOCKQUOTE><PRE><A href="http://hostname:port/soap/servlet/rpcrouter">http://hostname:port/soap/servlet/rpcrouter</A></PRE></BLOCKQUOTE><BR>
<H2><I>Optionally</I> switch out for a new xerces parser</H2>WebLogic 6.0
bundles the xerces parser already. If you want to use your own xerces.jar you
will have to edit your start script, and make sure that the CLASSPATH has
xerces.jar at the beginnning, so those classes get loaded before the ones in the
weblogic.jar. <BR>
<H2><I>Optionally</I> configure the soap.xml</H2><I>NOTE: For some reason I had
to configure this, else I got an error writing to the .ds file</I> <BR><BR>1.
Configure the web application to point to a soap.xml config file. <BR>Edit the
web.xml file and add another initialization parameter. (e.g.
c:\bea\wlserver6.0\config\mydomain\applications\soap\WEB-INF\web.xml) <PRE> <init-param>
<param-name>ConfigFile</param-name>
<param-value>c:\BEA\wlserver6.0\config\mydomain\applications\soap\soap.xml</param-value>
</init-param>
</PRE>2. Configure the soap.xml (e.g.
c:\BEA\wlserver6.0\config\mydomain\applications\soap\soap.xml) <PRE> <!-- Sample Apache SOAP Server Configuration File -->
<soapServer>
<!-- This section defines the same thing you get if you don't -->
<!-- specify anything at all - aka the default -->
<configManager value="org.apache.soap.server.DefaultConfigManager" >
<option name="filename" value="c:\BEA\wlserver6.0\config\mydomain\applications\soap\DeployedServices.ds" />
</configManager>
</soapServer>
</PRE>
<P>Happy SOAP-ing!</P></BODY></HTML>
websphere.html
(text/html, 5.2 KB)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<META name="GENERATOR" content="IBM WebSphere Homepage Builder V4.0.0 for Linux">
<title>WebSphere SOAP Installation Instructions</title>
</head>
<body bgcolor="#FFFFFF">
<h1 align="center">Apache-SOAP Version 2.3: Installing the Server-Side
Under IBM WebSphere Advanced Edition</h1>
<p>These instructions assume:</p>
<ul>
<li>WinNT 4.0 (similar for other platforms)</li>
<li>WebSphere Advanced Edition 3.5 with at least
fix pack 2</li>
</ul>
<HR>
<p><strong>IMPORTANT</strong><BR>
WebSphere comes with an XML parser (WebSphere\AppServer\lib\xml4j.jar)
which uses DOM level 1 interfaces. <BR><BR>
If you are using at least fixpack 4, or have
efix PQ47050 installed, then you need to
add the following string to the command line
arguments for each application server:<BR>
<CODE>
-classpath ....:xxx/xerces.jar...</CODE><BR>
Substitute the directory where you have stored
the jar for the xxx. If you are using Windows,
then use a semi-colon instead of a colon.
Restart the server so that the classpath
takes effect.<BR>
<BR>
If you do not have the above fix installed
then even if you put the Xerces 1.1.2's (or
later) xerces.jar in your classpath, the
wrong interfaces are found by any Java code
running in WebSphere because WebSphere puts
the user's classpath at the end. In that
case you must edit WebSphere\AppServer\bin\admin.config
file and put xerces.jar at the BEGINNING
of the <code>com.ibm.ejs.sm.adminserver.classpath=</code> variable
</p>
<HR>
<p>To set up a SOAP server:
<UL><li><p>From the WebSphere menu off of the NT Start menu:
<ol>
<li><p>Launch "Start Admin Server" and wait until it completes.</li>
<li><p>Launch "Administrator's Console".</li>
</ol></li><li><p>From the Administrator's Console:
<ol>
<li><p>Console/Tasks/Create Application Server<ol>
<li><p>Select Web Applications: You do not need Enterprise Beans for SOAP. Next</li>
<li><p>Application Server Properties: set the
Application Server Name to "SOAP" (or another name of your choice). Next</li>
<li><p>Application Server Start Option: "Do not start the server automatically after creating it".
Next</li>
<li><p>Node Selection: select your node. Next</li>
<li><p>Select Virtual Host: select "default_host". Next</li>
<li><p>Servlet Engine Properties: take the defaults. Next</li>
<li><p>Web Application Properties: Set the Web Application Web Path to "/soap".
You can use any web path you like, including the WebSphere default of
"/webapp/SoapWebApp", but using "/soap" keeps the URLs simple and is used
in these instructions. Next</li>
<li><p>Specify System Servlets: Enable JSP 1.0 or 1.1.</li>
<li><p>Finish to create the SOAP Application Server.</li>
</ol></li>
</OL>
</li><li><p>In the tree view, open the SoapWebApp, and select the Advanced tab:
<ol>
<li><p>Change Document Root to "C:\install-dir\soap-2_3\webapps\soap".</li>
<li><p>Set the classpath to
<ul>
<li><p><code>C:\XML\apache\soap-2_3\lib\soap.jar</code></li>
<li><p><code>C:\XML\apache\soap-2_3</code></li>
<li><p><code>C:\tools\BSF\lib\bsf.jar</code></li>
<li><p><code>C:\tools\BSF\lib\bsfengines.jar</code></li>
<li><p><code>C:\Tools\Rhino\js.jar</code></li>
<li><p><code>C:\Tools\Rhino\jstools.jar</code></li>
<li><p><code>your SOAP server classes, if any</code></li>
</ul></ol></li><li><p>Console/Tasks/Add a Servlet</li></UL>
<ol>
<li>Servlet: "No". Do not start the server automatically after creating it. Next</li>
<li>Servlet: Select the "SOAPWebApp" web app to contain the servlet. Next</li>
<li>Servlet: Select "create user-defined servlet". Next</li>
<li>Servlet:
<ol>
<li>Set the servlet name to "rpcrouter"</li>
<li>Set the servlet class name to "org.apache.soap.server.http.RPCRouterServlet".</li>
<li>Add "default_host/soap/servlet/rpcrouter" to the servlet web path list.
Note that you only need to type "servlet/rpcrouter" on the dialog that pops up.</li>
</ol>
Next</li>
<li>Servlet: Take the defaults.</li>
<li>Finish</li>
<li>Start the "SOAP" Server</li></ol>
<p>You can list and deploy SOAP services by pointing a browser to</p>
<blockquote>
<pre><a href="http://localhost:80/soap/admin">http://hostname:port/soap/admin</a></pre>
</blockquote>
<p>Alternatively, you can deploy services by setting up your classpath and using</p>
<blockquote>
<pre>
java org.apache.soap.server.ServiceManagerClient
http://hostname:port/soap/servlet/rpcrouter
deploy <DeploymentDescriptor.xml>
</pre>
</blockquote>
<p>See the User's Guide for details on the aministration tool.
The SOAP end-point for invoking services on this server is:</p>
<blockquote>
<pre><a href="http://localhost/soap/servlet/rpcrouter">http://hostname:port/soap/servlet/rpcrouter</a></pre>
</blockquote>
<p>Happy SOAP-ing!</p>
</body>
</html>
websphere-j.html
(text/html, 6 KB)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-2022-jp">
<META name="GENERATOR" content="IBM HomePage Builder 2001 V5.0.3 for Windows">
<title>WebSphere SOAP Installation Instructions</title>
</head>
<body bgcolor="#FFFFFF">
<P>
<i>
$BLu!'F|K\%"%$!&%S!<!&%(%`(B($B3t(B) $B%=%U%H%&%'%";v6HIt(B $BJF;}(B $B9,<w(B
<blockquote>
<font color="blue">
$B$3$N%I%-%e%a%s%H$O!"(BApache SOAP 2.0$B%l%Y%k$N$b$N$rF|K\8lLu$7$?$b$N$G!"(B
$B:G?7HG$N$b$N$H$O0[$J$k2DG=@-$,$"$j$^$9!#$^$?!"%&%'%V>e$G8+$k>l9g!"0lIt(B
$B$N%j%s%/$,@Z$l$F$$$k2DG=@-$,$"$j$^$9!#(BApache SOAP$B$N%G%#%l%/%H%j$N3:Ev(B
$B%U%!%$%k$HCV$-49$($k$3$H$G!"%*%j%8%J%k$N%Z!<%8$K%j%s%/$5$;$k$3$H$,$G$-(B
$B$^$9!#(B
</font>
</blockquote>
</i>
</P>
<h1 align="center">Apache-SOAP Version 2.0: <BR>
IBM WebSphere Advanced Edition $B$X$NF3F~<j=g(B</h1>
<p>$B0J2<$N<j=g$O<!$N4D6-$KF3F~$9$k$3$H$rA0Ds$K$7$F$$$^$9!#(B:</p>
<ul>
<li>WinNT 4.0 ($BB>$N%W%i%C%H%U%)!<%`$G$b$@$$$?$$F1$8$G$9(B)</li>
<li>WebSphere Advanced Edition 3.5 with fix pack
2 (SOAP 2.0 $B$K$O!"(BServlet API$B!!(B2.2$B!!$,I,MW$G$9(B)</li>
</ul>
<p><strong>$B=EMW(B</strong>$B!'(B<BR>
WebSphere $B$K$O!"(BDOM level1 $B%$%s%?!<%U%'%$%9$r;H$&(B
XML parser (WebSphere\AppServer\lib\xml4j.jar)
$B$,IU$$$F$-$^$9!#%f!<%6!<$N%/%i%9%Q%9$K(B Xerces
1.1.2$B!J$^$?$O$=$l0J9_!K$N(B xerces.jar $B%U%!%$%k$rDI2C$9$k$H!"(BWebSphere
$B$NCf$GF0$/%3!<%I$O4V0c$C$?%$%s%?!<%U%'%$%9$r8+$D$1$F$7$^$7$^$9!#$3$l$O!"(BWebSphere
$B$,%f!<%6!<$N%/%i%9%Q%9$r:G8e$KDI2C$9$k$?$a$G$9!#$=$3$G!"(BWebSphere\AppServer\bin\admin.config$B!!%U%!%$%k$rJT=8$7$F!"(Bxerces.jar
$B%U%!%$%k$,(B <CODE>com.ibm.ejs.sm.adminserver.classpath=</CODE> $B$NCM$N@hF,$KMh$k$h$&$K$7$^$9!#(B</p>
<H2>SOAP $B%5!<%P!<$N%;%C%H%"%C%W(B:</H2>
<UL>
<li>NT$B%9%?!<%H%a%K%e!<$N!V(BWebSphere$B!W%a%K%e!<$+$i(B:
<ol>
<li>$B!V(BStart Admin Server$B!W(B $B$r<B9T$7$F=*$o$k$^$GBT$A$^$9!#(B</li>
<li>$B!V4IM}%3%s%=!<%k!W$r5/F0$7$^$9!#(B</li>
</ol>
$B!!(B<BR>
</li>
<LI>$B4IM}%3%s%=!<%k$+$i(B:
<ol>
<LI>$B%3%s%=!<%k(B/$B%?%9%/(B/$B%"%W%j%1!<%7%g%s!&%5!<%P!<$N:n@.(B
<ol>
<li>$B!V(BWeb $B%"%W%j%1!<%7%g%s!W$rA*Br!'!V<!$X!W(B</li>
<li>$B%"%W%j%1!<%7%g%s!&%5!<%P!<$N%W%m%Q%F%#!<!'%"%W%j%1!<%7%g%s!&%5!<%P!<L>$r!V(BSOAP$B!JJL$NL>A0$G$b9=$$$^$;$s!K!W$H$7$F$/$@$5$$!#!V<!$X!W(B</li>
<li>$B%"%W%j%1!<%7%g%s!&%5!<%P!<3+;O%*%W%7%g%s!'!V%5!<%P!<$r:n@.$7$?8e$K<+F0E*$K3+;O$7$J$$!W$rA*Br$7$F!V<!$X!W(B</li>
<li>$B%N!<%I$NA*Br!'$4<+J,$N%N!<%I$rA*Br$7$F!V<!$X!W(B</li>
<li>$B2>A[%[%9%H$NA*Br!'!V(Bdefault_host$B!W$rA*Br$7$F!V<!$X!W(B</li>
<li>$B%5!<%V%l%C%H!&%(%s%8%s$N%W%m%Q%F%#!<!'%G%#%U%)%k%H$N$^$^$G!V<!$X!W(B</li>
<LI>$B%&%'%V!&%"%W%j%1!<%7%g%s$N%W%m%Q%F%#!<!'(B
Web$B%"%W%j%1!<%7%g%s!&%Q%9$r!V(B/soap$B!W$K@_Dj$7$^$9!#(B/webapp/SoapWebApp
$B$N$^$^$G$b9=$$$^$;$s$,!V(B/soap$B!W$N$[$&$,C;$/$F:Q$_$^$9$7!"$3$N<j=g$NCf$G$b$3$l$r;H$$$^$9!#$3$3$G!"!V(B/soap$B!W$K$7$J$+$C$?>l9g!"$"$H$N#U#R#L$K1F6A$7$^$9$N$G!"!V(B/soap$B!W$K$7$F$*$/$3$H$r$*A&$a$7$^$9!#!V<!$X!W(B
<li>$B%7%9%F%`!&%5!<%V%l%C%H$N;XDj!'!V(BJSP 1.0$B!W$+!V(BJSP
1.1 $B$r;HMQ2DG=$K$9$k!W(B</li>
<li>$B!V=*N;!W$r2!$9$H(B SOAP $B%"%W%j%1!<%7%g%s!&%5!<%P!<$,:n@.$5$l$^$9!#(B</li>
</ol>
</OL>
$B!!(B<BR>
<LI>$B%D%j!<I=<($+$i!V(BSoapWebApp$B!W$rA*Br$7!"!V3HD%!W%?%V$rA*Br$7$^$9!#(B
<ol>
<li>$BJ8=q%k!<%H$r(B "C:\install-dir\soap-2_0\webapps\soap"
$B$KJQ99$7$^$9!#(B</li>
<li>$B%/%i%9%Q%9$r0J2<$N$h$&$K@_Dj$7$^$9!#(B
<ul>
<li><code>C:\install-dir\soap-2_0\lib\soap.jar</code></li>
<li><code>C:\install-dir\soap-2_0</code></li>
<li>$BI,MW$K1~$8$F$"$J$?$N(BSOAP$B%5!<%P!<%/%i%9(B</li>
</ul>
</ol>
$B!!(B<BR>
<li>$B%3%s%=!<%k(B/$B%?%9%/(B/$B%5!<%V%l%C%H$NDI2C(B
<ol>
<li>$B%5!<%V%l%C%H!'(B $B!V$$$$$(!W$rA*Br$7$F!V<!$X!W(B</li>
<li>$B%5!<%V%l%C%H!'(B $B%5!<%V%l%C%H$rG[CV$9$k%5!<%P!<$H$7$F!V(BSOAPWebApp$B!W$rA*Br$7$F!V<!$X!W(B</li>
<li>$B%5!<%V%l%C%H!'(B $B!V%f!<%6!<Dj5A%5!<%V%l%C%H!W$rA*Br$7$F!V<!$X!W(B</li>
<li>$B%5!<%V%l%C%H!'(B
<ol>
<li>$B%5!<%V%l%C%HL>$r!V(Brpcrouter$B!W$H;XDj(B</li>
<li>$B%/%i%9L>$r!V(Borg.apache.soap.server.http.RPCRouterServlet$B!W$H;XDj(B</li>
<LI>$B!V(Bdefault_host/soap/servlet/rpcrouter$B!W$r%5!<%V%l%C%H(BWeb$B%Q%9%j%9%H$KDI2C!#%@%$%"%m%0!&%]%C%W%"%C%W$K$O!V(Bservlet/rpcrouter$B!W$H$@$1F~NO$7$^$9!#(B
</ol>
$B!V<!$X!W(B</li>
<li>$B%5!<%V%l%C%H!'(B $B%G%#%U%)%k%H$G7k9=$G$9!#(B</li>
<li>$B!V=*N;!W(B</li>
</ol>
$B!!(B<BR>
</li>
<LI>$BF1MM$N<j=g$G!V(Bmessagerouter$B!W%5!<%V%l%C%H$b:n@.$7$^$9(B
<UL>
<LI>$B%5!<%V%l%C%HL>!V(Bmessagerouter$B!W(B
<LI>$B%/%i%9L>!V(Borg.apache.soap.server.http.MessageRouterServlet$B!W(B
<LI>$B%Q%9%j%9%H$K!V(Bdefault_host/soap/servlet/messagerouter$B!W$rDI2C(B
</UL>
$B!!(B<BR>
<li>SOAP$B%5!<%P!<$r5/F0$7$^$9!#(B</li>
</UL>
<p>SOAP$B%5!<%S%9$r0lMwI=<($7$?$jG[CV$9$k%Z!<%8$r<!$N(BURL$B$GI=<($G$-$^$9!#(B</p>
<blockquote>http://$B%[%9%HL>!'%]!<%HHV9f(B/soap/admin
<pre>$B$b$7!"%m!<%+%k%5!<%P!<$,%G%#%U%)%k%H@_Dj$K$J$C$F$$$l$P!"<!$N(BURL$B$G%"%/%;%9$G$-$^$9!#(B
<a href="http://localhost:80/soap/admin">http://localhost/soap/admin</a></pre>
</blockquote>
<p>$BJL$NJ}K!$H$7$F!"<!$N%3%^%s%I$r%/%i%9%Q%9$r@5$7$/@_Dj$7$F<B9T$9$l$PG[CV$,$G$-$^$9!#(B</p>
<blockquote>
<pre>
java org.apache.soap.server.ServiceManagerClient
http://hostname:port/soap/servlet/rpcrouter
deploy <DeploymentDescriptor.xml>
</pre>
</blockquote>
<p>$B4IM}%D!<%k$K4X$7$F$O$5$i$K>\$7$$@bL@$,!V(BUser's
Guide$B!W$K$"$j$^$9!#%5!<%P!<$N%5!<%S%9$r<u$1$k$?$a$N%(%s%I%]%$%s%H$O(B</p>
<blockquote>
<pre><a href="http://localhost/soap/servlet/rpcrouter">http://hostname:port/soap/servlet/rpcrouter</a></pre>
</blockquote>
<P>$B$G$9!#(B</P>
<p>$B$G$O!"(BSOAP$B$r$*3Z$7$_$/$@$5$$!*(B</p>
</body>
</html>