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