Hi All

I have an issue with one deployment of a piece of software I've
written using Axis.  I have a web-service client that retrieves a
javax.xml.soap.SOAPMessage as the service response, pulls out a
javax.xml.soap.SOAPBody from that response and then gets the first
body element from that to return as the service response.  The code
for processing the response is as follows -

SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance();
    SOAPConnection con = scf.createConnection();
    SOAPMessage response = con.call(message, endpointAddress);

    SOAPBody responseBody = response.getSOAPBody();
    Iterator it = responseBody.getChildElements();
    if(it.hasNext())
    {
      org.apache.axis.message.SOAPBodyElement next =
(org.apache.axis.message.SOAPBodyElement)it.next();
      StringWriter writer = new StringWriter();
      next.output(new SerializationContext(writer));
      String outputted = writer.toString();
      return outputted;
    }

So, as you can see, the code assumed that Axis is the underlying
implementation of the javax.xml.soap interfaces, so we can class-cast
to an Axis SOAPBodyElement.  This usually works well because we deploy
with Axis on the classpath so that it is picked up as the
implmentation.  However, on one system the class-cast fails because
the underlying object is
com.sun.xml.internal.messaging.saaj.soap.ver1_1.BodyElement_1Impl.

So, my questions are
1) Am I right in thinking that this is likely down to either the Axis
jar being missing from the classpath, or another jar that implements
javax.xml.soap has a higher priority on the classpath?
2) Does anyone know what jar file the
com.sun.xml.internal.messaging.saaj.soap.ver1_1.BodyElement_1Impl
class is likely to be being picked up from?  The saaj jar files I have
on my own system don't include it, though I haven't had chance to
investigate the problem system yet.
3) This is deployed in a Tomcat environment, are there any places in
Tomcat or the JVM I should concentrate on looking for a jar file that
is overriding the Axis jar (which should be in
tomcat/webapps/<web-app>/WEB-INF/lib/)?

Thanks so much for any help.

-- 
Chris Mannion

Reply via email to