public boolean handleMessage(MessageContext arg0) { |
SOAPMessageContext ct = (SOAPMessageContext) arg0; |
boolean isRequestFlag = (Boolean) arg0 |
.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY); |
SOAPMessage msg = ct.getMessage(); |
if (isRequestFlag) { |
try { |
SOAPBody body = msg.getSOAPBody(); |
Node port = body.getChildNodes().item( 0 ); |
String portContent = port.toString(); |
NodeList list = port.getChildNodes(); |
for ( int i = 0 ; i < list.getLength(); i++) { |
port.removeChild(list.item(i)); |
} |
ByteArrayOutputStream outArr = new ByteArrayOutputStream(); |
GZIPOutputStream zip = new GZIPOutputStream(outArr); |
zip.write(portContent.getBytes()); |
zip.flush(); |
zip.close(); |
byte [] arr = outArr.toByteArray(); |
TestDataSource ds = new TestDataSource(arr); |
AttachmentPart attPart = msg.createAttachmentPart(); |
attPart.setDataHandler( new DataHandler(ds)); |
msg.addAttachmentPart(attPart); |
} catch (SOAPException e) { |
e.printStackTrace(); |
} catch (IOException e) { |
e.printStackTrace(); |
} |
} |
return true ; |
} //源代码片段来自云代码http://yuncode.net |
|