You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Steve Pruitt <SP...@exstream.com> on 2004/02/01 19:37:55 UTC

attachment is there, but can't reach it through soap w/attachment api

This is frustrating.  My service sends an attachment along with some body content.  Can someone spot where I am going wrong?
 
Thanks much in advance.
 
The code to create the soap response is:
 
SOAPMessage reply = mf.createMessage();  //mf is javax.xml.soap.MessageFactory
 
SOAPPart sp = reply.getSOAPPart();
SOAPEnvelope envelope = sp.getEnvelope();
SOAPBody body = envelope.getBody();
 
<add body content>
 
AttachmentPart ap = reply.createAttachmentPart();
ap.setContent("Hello world", "text/plain");
ap.setContentType("text/plain");
reply.addAttachmentPart(ap);
 
OutputStream os = resp.getOutputStream();  //resp is HttpServletResponse
reply.writeTo(os); 
os.flush();
 
The reponse in TCPMonitor looks right.
 
HTTP/1.1 200 OK
Server: WebSphere Application Server/5.0
Content-Type: text/xml
Content-Language: en-US
Transfer-Encoding: chunked
 
2f6
 
------=_Part_253_1453525045.1075659147844
Content-Type: text/xml; charset=UTF-8
Content-Transfer-Encoding: binary
Content-Id: <55845AE6F8C3F5C10F9BC0B1C55E4852>
 
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv=" http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc=" http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd=" http://www.w3.org/2001/XMLSchema" xmlns:xsi="  <http://www.w3.org/2001/XMLSchema-instance> http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><ComposedOutput xmlns=""><PageCount xmlns="">1</PageCount><Filetype xmlns="">text</Filetype><OutputLength xmlns="">4853</OutputLength><MessageLength xmlns="">0</MessageLength><UserDataLength xmlns="">0</UserDataLength><ReturnCode xmlns="">0</ReturnCode></ComposedOutput></soapenv:Body></soapenv:Envelope>
 
a7
 
------=_Part_253_1453525045.1075659147844
 
Content-Type: text/plain
Content-Transfer-Encoding: binary
Content-Id: <D73FB9876DE71FA69AD338C9CC5F80C3>
 
Hello world
 
2f
 
------=_Part_253_1453525045.1075659147844--
 
0
 
But, when I try to get my attachment I am told there are no attachments.  The client code is:
 
SOAPMessage reply = con.call(msg, endpoint);
Iterator it = reply.getAttachments();
if(it.hasNext()) ... //returns false

When I dump out the reply contents via
 
reply.writeTo(System.out); 
 
I get:
 
------=_Part_255_354535470.1075659594906
Content-Type: text/xml; charset=UTF-8 
Content-Transfer-Encoding: binary
Content-Id: <2AFD7CBEAACE2BBD6E04276133ABA759>
 
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv=" http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc=" http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd=" http://www.w3.org/2001/XMLSchema" xmlns:xsi="  <http://www.w3.org/2001/XMLSchema-instance> http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><ComposedOutput xmlns=""><PageCount xmlns="">3</PageCount><Filetype xmlns="">pdf</Filetype><OutputLength xmlns="">4853</OutputLength><MessageLength xmlns="">0</MessageLength><UserDataLength xmlns="">0</UserDataLength><ReturnCode xmlns="">0</ReturnCode></ComposedOutput></soapenv:Body></soapenv:Envelope>
 
------=_Part_255_354535470.1075659594906
 
Content-Type: text/plain
Content-Transfer-Encoding: binary
Content-Id: <56B762E91F1D90F082AB059B26A3E0C7>
 
Hello world
 
------=_Part_255_354535470.1075659594906--