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

📄 clienthandler.java

📁 Java有关XML编程需要用到axis 的源代码 把里面bin下的包导入相应的Java工程 进行使用
💻 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 + -