📄 clienthandler.java
字号:
package test.wsdl.jaxrpchandler;import javax.xml.namespace.QName;import javax.xml.rpc.handler.Handler;import javax.xml.rpc.handler.HandlerInfo;import javax.xml.rpc.handler.MessageContext;import javax.xml.rpc.handler.soap.SOAPMessageContext;import javax.xml.soap.Name;import javax.xml.soap.SOAPEnvelope;import javax.xml.soap.SOAPHeader;import javax.xml.soap.SOAPBody;import javax.xml.soap.SOAPHeaderElement;import javax.xml.soap.SOAPMessage;import javax.xml.soap.SOAPPart;import java.util.Iterator;/** */public class ClientHandler implements Handler { private final static String _actorURI = "myActorURI"; /** * Constructor for ClientHandler. */ public ClientHandler() { super(); } /** * @see javax.xml.rpc.handler.Handler#handleRequest(MessageContext) */ public boolean handleRequest(MessageContext context) { System.out.println("Hey - in Handle request"); try { SOAPMessageContext smc = (SOAPMessageContext) context; SOAPMessage msg = smc.getMessage(); SOAPPart sp = msg.getSOAPPart(); SOAPEnvelope se = sp.getEnvelope(); SOAPHeader sh = se.getHeader(); Name name = se.createName( "HeaderTest", "AXIS", "http://xml.apache.org/axis"); SOAPHeaderElement she = sh.addHeaderElement(name); she.setActor(_actorURI); she.addAttribute(se.createName("counter", "", ""), "1"); she.addAttribute(se.createName("faultCounter", "", ""), "1"); } catch (Exception e) { e.printStackTrace(); } return true; } /** * @see javax.xml.rpc.handler.Handler#handleResponse(MessageContext) */ public boolean handleResponse(MessageContext context) { System.out.println("Hey - in Handle response"); try { String counter = null; String faultCounter = null; SOAPMessageContext smc = (SOAPMessageContext) context; SOAPMessage msg = smc.getMessage(); SOAPPart sp = msg.getSOAPPart(); SOAPEnvelope se = sp.getEnvelope(); SOAPHeader sh = se.getHeader(); SOAPBody sb = se.getBody(); Name name = se.createName( "HeaderTest", "AXIS", "http://xml.apache.org/axis"); Iterator iter = sh.extractHeaderElements(_actorURI); while (iter.hasNext()) { SOAPHeaderElement she = (SOAPHeaderElement) iter.next(); counter = she.getAttributeValue(se.createName("counter", "", "")); System.out.println( "The counter in the element sent back is " + counter); faultCounter = she.getAttributeValue(se.createName("faultCounter", "", "")); System.out.println( "The faultCounter in the element sent back is " + faultCounter); } if ((counter != null) && (counter.equals("3")) && (!sb.hasFault())) { JAXRPCHandlerTestCase.completeRoundtrip(); } if ((faultCounter != null) && (faultCounter.equals("3")) && (sb.hasFault())) { JAXRPCHandlerTestCase.setFaultRoundtrip(Integer.parseInt(faultCounter)); } } catch (Exception e) { e.printStackTrace(); } return false; } /** * @see javax.xml.rpc.handler.Handler#handleFault(MessageContext) */ public boolean handleFault(MessageContext context) { return false; } /** * @see javax.xml.rpc.handler.Handler#init(HandlerInfo) */ public void init(HandlerInfo config) { } /** * @see javax.xml.rpc.handler.Handler#destroy() */ public void destroy() { } /** * @see javax.xml.rpc.handler.Handler#getHeaders() */ public QName[] getHeaders() { return null; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -