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

📄 validateheadershandler.java

📁 Xfire文件 用于开发web service 的一个开源工具 很好用的
💻 JAVA
字号:
package org.codehaus.xfire.soap.handler;import java.util.List;import javax.xml.namespace.QName;import 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.soap.Soap12;import org.codehaus.xfire.soap.SoapVersion;import org.jdom.Element;import org.jdom.Namespace;/** * Validates that headers flagged as "mustUnderstand" are understood. *  * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a> */public class ValidateHeadersHandler    extends AbstractHandler{        public ValidateHeadersHandler()     {        super();        setPhase(Phase.PRE_INVOKE);    }    /**     * Validates that the mustUnderstand and role headers are processed correctly.     *     * @param context     * @throws XFireFault     */    public void invoke(MessageContext context)        throws Exception    {        if (context.getInMessage().getHeader() == null)            return;        SoapVersion version = context.getInMessage().getSoapVersion();        List elements = context.getInMessage().getHeader().getChildren();        for (int i = 0; i < elements.size(); i++)        {            Element e = (Element) elements.get(i);            String mustUnderstand = e.getAttributeValue("mustUnderstand",                    Namespace.getNamespace(version.getNamespace()));            if (mustUnderstand != null && ( mustUnderstand.equals("1") ||  (version == Soap12.getInstance() &&  mustUnderstand.equals("true"))) )            {                assertUnderstandsHeader(context, new QName(e.getNamespaceURI(), e.getName()));            }        }    }    /**     * Assert that a service understands a particular header.  If not, a fault is thrown.     *     * @param context     * @param name     * @throws XFireFault     */    protected void assertUnderstandsHeader(MessageContext context, QName name)            throws XFireFault    {        if (context.getInPipeline().understands(name))            return;        if (context.getOutPipeline().understands(name))            return;        // TODO: Check Out pipeline for understanding                throw new XFireFault("Header {" + name.getLocalPart() + "}" + name.getNamespaceURI()                + " was not undertsood by the service.", XFireFault.MUST_UNDERSTAND);    }}

⌨️ 快捷键说明

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