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 |
|