Gabsaga Tata
2005-09-28 16:45:44 UTC
Is it possible for a client application to get back data as MIME attachment from a web service?
From the example code snippets below, the service successfully attaches a file to a SOAP message
but when the client application tries to get the attachments count, it is zero. Any ideas why?
Thanks.
Gabsaga
********************************************************
Code snippet for MyMessageService message-style service.
********************************************************
MessageContext msgCntxt = MessageContext.getCurrentContext();
SOAPMessage msg = msgCntxt.getMessage();
DataHandler dataHander = new DataHandler(new FileDataSource("C:\\<tomcat_directory>\\webapps\\axis\\WEB-INF\\attachments\\res_message.xml"));
AttachmentPart attachment = msg.createAttachmentPart(dataHander);
attachment.setContentId("attached_processed_file");
msg.addAttachmentPart(attachment);
********************************************************
Code snippet for Client application sending request to
MyMessageService message-style service.
********************************************************
SOAPConnection conn = SOAPConnectionFactory.newInstance().createConnection();
SOAPMessage response = conn.call(message, "http://localhost/axis/services/MyMessageService");
SOAPPart responseSp = response.getSOAPPart();
SOAPEnvelope responseSe = responseSp.getEnvelope();
SOAPBody responseBody = responseSe.getBody();
//Get attached message
if(!responseBody.hasFault())
{
int numOfAttachments = response.countAttachments();
System.out.println("\n\nNumber of attachments in message = " + numOfAttachments);
}
********************************************************
From the example code snippets below, the service successfully attaches a file to a SOAP message
but when the client application tries to get the attachments count, it is zero. Any ideas why?
Thanks.
Gabsaga
********************************************************
Code snippet for MyMessageService message-style service.
********************************************************
MessageContext msgCntxt = MessageContext.getCurrentContext();
SOAPMessage msg = msgCntxt.getMessage();
DataHandler dataHander = new DataHandler(new FileDataSource("C:\\<tomcat_directory>\\webapps\\axis\\WEB-INF\\attachments\\res_message.xml"));
AttachmentPart attachment = msg.createAttachmentPart(dataHander);
attachment.setContentId("attached_processed_file");
msg.addAttachmentPart(attachment);
********************************************************
Code snippet for Client application sending request to
MyMessageService message-style service.
********************************************************
SOAPConnection conn = SOAPConnectionFactory.newInstance().createConnection();
SOAPMessage response = conn.call(message, "http://localhost/axis/services/MyMessageService");
SOAPPart responseSp = response.getSOAPPart();
SOAPEnvelope responseSe = responseSp.getEnvelope();
SOAPBody responseBody = responseSe.getBody();
//Get attached message
if(!responseBody.hasFault())
{
int numOfAttachments = response.countAttachments();
System.out.println("\n\nNumber of attachments in message = " + numOfAttachments);
}
********************************************************