Santosh on [EMAIL PROTECTED] suggested I post here, 
and ask for Craig.  So if Craig (or anyone else) is listening...
Help!!

I'm experiencing a problem with SOAP message-style services 
when using Tomcat 4.01.  Santosh suggested that this may be a 
classloader problem in Tomcat 4.01.

I have a very simple SOAP message-style service that demonstrates the
general problem.  This service echoes whatever is sent to it.  It works
fine with Tomcat 3.2.3, but is returning a "no signature match" fault 
with Tomcat 4.01.  

If I resort to removing
$CATALINA_HOME/webapps/soap/WEB-INF/classes/org/,
I can get this service to work.  But I don't understand why,
and it's clearly an unacceptable hack.

I've attached the following:
  details.txt    -- detailed problem description
  echomsg.tar.gz -- Java source, deployment descriptor, Makefile, fault
details

Any help in correcting/understanding this will be appreciated.
Sorry for the size of this post, but I'm trying to provide all
of the details necessary to resolve this.  Thanks,

-Chris

-- 
Chris Malley
PixelZoom, Inc.             Voice: +1.303.494.8849
835 Orman Drive             EMail: [EMAIL PROTECTED]
Boulder CO 80303-2616
------------------------------------------------------------------------
ABOUT MY SOAP SERVICE ...

'echomsg' is a SOAP message-style service that simply echoes a string 
that it receives from the SOAP client. For example...

Here's what the client sends:

  <?xml version='1.0' encoding='UTF-8'?>
  <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/";>
    <s:Body>
      <echo xmlns="urn:echomsg">hello</echo>
    </s:Body>
  </s:Envelope>

Here's how the server responds:

  <?xml version='1.0' encoding='UTF-8'?>
  <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/";>
    <s:Body>
      <response>hello</response>
    </s:Body>
  </s:Envelope>

Here's the signature of the method that implements the service:

  public void echo( Envelope env, SOAPContext req, SOAPContext res )
    throws IOException, MessagingException;

------------------------------------------------------------------------
ABOUT MY PLATFORM ...

  Tomcat 4.0.1
  Apache SOAP 2.2
  JDK 1.3.1_01
  Linux 2.2.12-20 kernel

------------------------------------------------------------------------
SET UP ...

Install Tomcat 4.01 and Apache SOAP 2.2:

 (1) Install Tomcat 4.01 in $CATALINA_HOME
 (2) Install Apache SOAP 2.2 in $SOAP_HOME
 (3) cp $SOAP_HOME/lib/soap.jar to $CATALINA_HOME/lib/
 (4) cp $SOAP_HOME/webapps/soap.war to $CATALINA_HOME/webapps/

CLASSPATH is set in the provided Makefile.  I do not have CLASSPATH
set in my shell environment, and I have not changed any of the Tomcat
config files.

Build the SOAP service.  

 (5) tar xzvf echomsg.tar.gz
 (6) cd echomsg
 (7) make
 
Deploy the SOAP service:

 (8) make install
 (9) $CATALINA_HOME/bin/startup.sh
 (10) make deploy

------------------------------------------------------------------------
DEMONSTRATING THE PROBLEM ...

Run the SOAP client:

 make test 
 
The SOAP response contains this faultstring:

 <faultstring>Exception while handling service request: 
echomsg.Server.echo(org.apache.soap.Envelope,org.apache.soap.rpc.SOAPContext,org.apache.soap.rpc.SOAPContext)
-- no signature match</faultstring>

Again, this is a message-style service that works just fine with
Tomcat 3.2.3.  And (see below) I can make it work with Tomcat 4.01
if I resort to hacks.

On [EMAIL PROTECTED], it was suggested that this problem 
was due to the presence of multiple copies of soap.  The solutions
suggested were to either:
 (a) remove $CATALINA_HOME/lib/soap.jar, or
 (b) remove $CATALINA_HOME/webapps/soap/WEB-INF/classes/org/
 
Method (a) doesn't work; it results in Tomcat not being able to 
handle SOAP service requests since it doesn't know about the 
soap servlet.  

To try method (b), here's what I did: 

 (1) $CATALINA_HOME/bin/shutdown.sh
 (2) rm -rf $CATALINA_HOME/webapps/soap/WEB-INF/classes/org/
 (3) $CATALINA_HOME/bin/startup.sh
 (4) make test

Method (b) does work, but it's an unacceptable hack.  And I still
don't understand what the original problem is.
 
**************************************************************************

Attachment: echomsg.tar.gz
Description: GNU Zip compressed data

--
To unsubscribe:   <mailto:[EMAIL PROTECTED]>
For additional commands: <mailto:[EMAIL PROTECTED]>
Troubles with the list: <mailto:[EMAIL PROTECTED]>

Reply via email to