I have a very simple web service that echos back the xml given that looks like this:
public class MessageService { public Document echoDocument(Document doc) throws Exception { return doc; } } On the client I have the various methods setup to retrieve the result vector and print out the document. So far so good. Now when I try to add an attachment from the server the result vector on the client is empty. Using TCPMonitor I can see that the mime message is coming through just fine. A perl client using SOAP::Lite is able to see the data too. public class MessageService { public Document echoDocument(Document doc) throws Exception { DataSource ds = new FileDataSource("/tmp/msg.pdf"); AttachmentPart att = new AttachmentPart(new DataHandler(ds)); Message msg = (Message)MessageContext.getCurrentContext().getResponseMessage(); msg.addAttachmentPart(att); msg.saveChanges(); return doc; } } Has anyone written an axis client for a document style service that can handle an attachment? -a. For completeness here is the MessageClient: public class MessageClient { public static void main(String[] args) throws Exception { DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document doc = builder.parse(args[0]); System.out.println("sending " + XMLUtils.DocumentToString(doc)); Service service = new Service(); Call call = (Call) service.createCall(); String endpoint = "http://localhost:8080/msgservice/services/MessageService"; call.setTargetEndpointAddress(new URL(endpoint)); call.setOperation(new QName(endpoint, "echoDocument"), "echoDocument"); Object ret = call.invoke(new Object[] {new SOAPBodyElement(doc.getDocumentElement())}); Vector result = (Vector) call.invoke(new Object[] {new SOAPBodyElement(doc.getDocumentElement())}); System.out.println(result); /* SOAPBodyElement sbe = (SOAPBodyElement) result.get(0); Document retDoc = sbe.getAsDocument(); System.out.println("received " + XMLUtils.DocumentToString(retDoc)); */ } }