servicerouterhandler.java

来自「Xfire文件 用于开发web service 的一个开源工具 很好用的」· Java 代码 · 共 59 行

JAVA
59
字号
package org.codehaus.xfire.examples.router;// START SNIPPET: handlerimport org.codehaus.xfire.MessageContext;import org.codehaus.xfire.fault.XFireFault;import org.codehaus.xfire.handler.AbstractHandler;import org.codehaus.xfire.handler.Phase;import org.codehaus.xfire.service.Service;import org.jdom.Element;import org.jdom.Namespace;public class ServiceRouterHandler    extends AbstractHandler{    public final static String VERSION_NS = "http://xfire.codehaus.org/examples/router";    public final static String VERSION_NAME = "Version";        public ServiceRouterHandler()     {        super();        setPhase(Phase.PRE_DISPATCH);    }    public void invoke(MessageContext context)        throws Exception    {        Element header = context.getInMessage().getHeader();        if (header == null) return;                Element versionEl = header.getChild(VERSION_NAME, Namespace.getNamespace(VERSION_NS));        if (versionEl == null) return;                String version = versionEl.getValue();        if (version == null || version.length() == 0)        {            throw new XFireFault("An empty version element is not allowed.", XFireFault.SENDER);        }                setVersion(version, context);    }    /**     * Looks up the appropriate service version using referenced by "Echo" plus the version string.     */    private void setVersion(String version, MessageContext context)         throws XFireFault    {        Service service = context.getXFire().getServiceRegistry().getService("Echo" + version);                if (service == null)        {            throw new XFireFault("Invalid version: " + version, XFireFault.SENDER);        }                context.setService(service);   }}// END SNIPPET: handler

⌨️ 快捷键说明

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