The default message handler created in the IDE provides code for logging a message in the Output window whenever the handleRequest method is called. On the client-side, this happens before the client's request is sent to the web service. On the service-side, this happens before a client's request is delivered to the service.
The code for logging a message is shown below:
public boolean handleRequest(MessageContext context) { try{ SOAPMessageContext smc = (SOAPMessageContext) context; SOAPMessage msg = smc.getMessage(); SOAPPart sp = msg.getSOAPPart(); SOAPEnvelope se = sp.getEnvelope(); SOAPHeader shd = se.getHeader(); SOAPBody sb = se.getBody(); java.util.Iterator childElems = sb.getChildElements(); SOAPElement child; StringBuffer message = new StringBuffer(); while (childElems.hasNext()) { child = (SOAPElement) childElems.next(); message.append(new Date().toString() + "--"); formLogMessage(child, message); } System.out.println("Log message: " + message.toString()); } catch(Exception e){ e.printStackTrace(); } return true; } private void formLogMessage(SOAPElement child, StringBuffer message) { message.append(child.getElementName().getLocalName()); message.append(child.getValue() != null ? ":" + child.getValue() + " " : " "); try{ java.util.Iterator childElems = child.getChildElements(); while (childElems.hasNext()) { Object c = childElems.next(); if(c instanceof SOAPElement) formLogMessage((SOAPElement)c, message); } }catch(Exception e){ e.printStackTrace(); } }
See Also | |
---|---|
About Web Services About Web Service Clients About Message Handlers Creating a Message Handler Configuring a Message Handler |