⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clienthandler2.java

📁 Java有关XML编程需要用到axis 的源代码 把里面bin下的包导入相应的Java工程 进行使用
💻 JAVA
字号:
package test.wsdl.jaxrpchandlereval;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;import javax.xml.soap.*;import javax.xml.rpc.handler.soap.SOAPMessageContext;import javax.xml.rpc.soap.*;import javax.xml.rpc.*;/** */public class ClientHandler2 implements Handler {private final static String _actorURI = "myActorURI";/** * Constructor for ClientHandler2. */public ClientHandler2() {    System.out.println("ClientHandler2:Constructor");}/** * @see javax.xml.rpc.handler.Handler#handleRequest(MessageContext) */public boolean handleRequest(MessageContext context) {    System.out.println("ClientHandler2:handleRequest");	HandlerTracker.addClientHandler("clienthandler2.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("ClientHandler2-handleRequest", "", "");            SOAPHeaderElement hdr = sh.addHeaderElement(name);            hdr.addTextNode("Processed");            String instruction = sb.toString();            if (instruction.indexOf("client-throw-jaxrpcexception") >= 0) {                soapMsgCtx.setProperty("fault", "Throwing a client side exception from ClientHandler2.handleRequest");                QName faultcode = new QName("Testimg Exception",                                            "http://example.org/security/");                // According to JAX-RPC spec client handlers cannot throw SOAPFaultException                throw new JAXRPCException();            } else if (instruction.indexOf("client-return-false") >= 0) {                soapMsgCtx.setProperty("fault", "Returning false from ClientHandler2.handleRequest");                return false;            }        } catch (SOAPException ex) {            ex.printStackTrace();            return false;        }    }    return true;}/** * @see javax.xml.rpc.handler.Handler#handleResponse(MessageContext) */public boolean handleResponse(MessageContext context) {    System.out.println("ClientHandler2:handleResponse");	HandlerTracker.addClientHandler("clienthandler2.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();            Name name = se.createName("ClientHandler2-handleResponse", "", "");            SOAPHeaderElement hdr = sh.addHeaderElement(name);            hdr.addTextNode("Processed");        } catch (SOAPException ex) {            ex.printStackTrace();            return false;        } catch (java.io.IOException ex) {            ex.printStackTrace();            return false;        } catch (Exception ex) {             throw new JAXRPCException(ex);         }    }    return true;}public SOAPMessage prepareError(SOAPMessageContext soapMsgCtx) throws Exception{        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);        }        return soapMsg;}/** * @see javax.xml.rpc.handler.Handler#handleFault(MessageContext) */public boolean handleFault(MessageContext context) {    System.out.println("ClientHandler2:handleFault");	HandlerTracker.addClientHandler("clienthandler2.handleFault");    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();            Name name = se.createName("ClientHandler2-handleFault", "", "");            SOAPHeaderElement hdr = sh.addHeaderElement(name);            hdr.addTextNode("Processed");        } catch (SOAPException ex) {            ex.printStackTrace();            return false;        } catch (Exception ex) {            ex.printStackTrace();             throw new JAXRPCException(ex);         }    }    return true;}/** * @see javax.xml.rpc.handler.Handler#init(HandlerInfo) */public void init(HandlerInfo config) {    System.out.println("ClientHandler2.init");}/** * @see javax.xml.rpc.handler.Handler#destroy() */public void destroy() {    System.out.println("ClientHandler2.destroy");}/** * @see javax.xml.rpc.handler.Handler#getHeaders() */public QName[] getHeaders() {    System.out.println("ClientHandler2.getheaders");    return null;}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -