Methods Summary |
---|
public void | destroy()
System.out.println("ClientHandler.destroy");
|
public javax.xml.namespace.QName[] | getHeaders()
System.out.println("ClientHandler.getheaders");
return null;
|
public boolean | handleFault(javax.xml.rpc.handler.MessageContext context)
System.out.println("ClientHandler:handleFault");
HandlerTracker.addClientHandler("clienthandler1.handleFault");
if (context instanceof SOAPMessageContext) {
try {
SOAPMessageContext soapMsgCtx = (SOAPMessageContext)context;
SOAPMessage soapMsg = soapMsgCtx.getMessage();
SOAPPart sp = soapMsg.getSOAPPart();
SOAPEnvelope se = sp.getEnvelope();
SOAPBody sb = se.getBody();
SOAPHeader sh = se.getHeader();
Name name = se.createName("ClientHandler-handleFault", "", "");
SOAPHeaderElement hdr = sh.addHeaderElement(name);
hdr.addTextNode("Processed");
} catch (SOAPException ex) {
ex.printStackTrace();
return false;
}
}
return false;
|
public boolean | handleRequest(javax.xml.rpc.handler.MessageContext context)
System.out.println("ClientHandler:handleRequest");
HandlerTracker.addClientHandler("clienthandler1.handleRequest");
if (context instanceof SOAPMessageContext) {
try {
SOAPMessageContext soapMsgCtx = (SOAPMessageContext)context;
SOAPMessage soapMsg = soapMsgCtx.getMessage();
SOAPPart sp = soapMsg.getSOAPPart();
SOAPEnvelope se = sp.getEnvelope();
SOAPBody sb = se.getBody();
SOAPHeader sh = se.getHeader();
Name name = se.createName("ClientHandler-handleRequest", "", "");
SOAPHeaderElement hdr = sh.addHeaderElement(name);
hdr.addTextNode("Processed");
String instruction = sb.toString();
if (instruction.indexOf("client-return-false") >= 0) {
soapMsgCtx.setProperty("fault", "Returning false from ClientHandler.handleRequest");
return false;
}
} catch (SOAPException ex) {
ex.printStackTrace();
return false;
}
}
return true;
|
public boolean | handleResponse(javax.xml.rpc.handler.MessageContext context)
System.out.println("ClientHandler:handleResponse");
HandlerTracker.addClientHandler("clienthandler1.handleResponse");
if (context instanceof SOAPMessageContext) {
try {
SOAPMessageContext soapMsgCtx = (SOAPMessageContext)context;
SOAPMessage soapMsg = soapMsgCtx.getMessage();
if (soapMsg == null) {
soapMsg = prepareError(soapMsgCtx);
}
SOAPPart sp = soapMsg.getSOAPPart();
SOAPEnvelope se = sp.getEnvelope();
SOAPBody sb = se.getBody();
SOAPHeader sh = se.getHeader();
trackServerHandler(sh);
Name name = se.createName("ClientHandler-handleResponse", "", "");
SOAPHeaderElement hdr = sh.addHeaderElement(name);
hdr.addTextNode("Processed");
} catch (SOAPException ex) {
ex.printStackTrace();
return false;
} catch (Exception ex) {
throw new JAXRPCException (ex);
}
}
return true;
|
public void | init(javax.xml.rpc.handler.HandlerInfo config)
System.out.println("ClientHandler.init");
|
public javax.xml.soap.SOAPMessage | prepareError(javax.xml.rpc.handler.soap.SOAPMessageContext soapMsgCtx)
MessageFactory messageFactory = MessageFactory.newInstance();
SOAPMessage soapMsg = messageFactory.createMessage();
soapMsgCtx.setMessage(soapMsg);
String fault = (String)soapMsgCtx.getProperty("fault");
if (fault != null) {
SOAPFault soapFault =
soapMsg.getSOAPPart().getEnvelope().getBody().addFault();
soapFault.setFaultString(fault);
soapFault.setFaultCode("client.Exception");
}
return soapMsg;
|
private void | trackServerHandler(javax.xml.soap.SOAPHeader sh)
Iterator i = sh.getChildElements();
while (i.hasNext()) {
Node n = (Node) i.next();
if (n instanceof Text) {
continue;
}
SOAPElement e = (SOAPElement) n;
String local = e.getLocalName();
if (local.equals("ServiceHandler2-handleFault")) {
HandlerTracker.addServerHandler("serverhandler2.handleFault");
} else if (local.equals("ServiceHandler1-handleFault")) {
HandlerTracker.addServerHandler("serverhandler1.handleFault");
} else if (local.equals("ServiceHandler2-handleResponse")) {
HandlerTracker.addServerHandler("serverhandler2.handleResponse");
} else if (local.equals("ServiceHandler1-handleResponse")) {
HandlerTracker.addServerHandler("serverhandler1.handleResponse");
}
}
|