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

📄 faultinfo.java

📁 Java有关XML编程需要用到axis 的源代码 把里面bin下的包导入相应的Java工程 进行使用
💻 JAVA
字号:
/* * Copyright 2001-2004 The Apache Software Foundation. *  * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *  *      http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.axis.wsdl.symbolTable;import org.apache.axis.constants.Use;import org.apache.axis.utils.Messages;import javax.wsdl.Fault;import javax.wsdl.Message;import javax.wsdl.Part;import javax.wsdl.extensions.soap.SOAPHeaderFault;import javax.xml.namespace.QName;import java.io.IOException;import java.util.Map;/** * Fault information object.  This should probably really be FaultEntry and * it should be a subclass of SymTabEntry, but faults aren't first-class * objects in WSDL, so I'm not sure what the FaultEntry should contain and * how it should be constructed, so for now leave it as a simple object. */public class FaultInfo {    /** Field message */    private Message message;    /** Field xmlType */    private QName xmlType;    /** Field use */    private Use use;    /** Field qName */    private QName qName;    /** Field name */    private String name;    /**     * This constructor creates FaultInfo for a binding fault.     * <p/>     * If the part of the fault is a type, then the QName is     * derived from the element name and the provided namespace     * (this namespace SHOULD come from the binding).     * <p/>     * If the part of the fault is an element, then the QName is     * the QName of the element, and the given namespace is ignored.     *      * @param fault            * @param use              * @param namespace        * @param symbolTable      */    public FaultInfo(Fault fault, Use use, String namespace,                     SymbolTable symbolTable) {        this.message = fault.getMessage();        this.xmlType = getFaultType(symbolTable, getFaultPart());        this.use = (use != null) ? use : Use.LITERAL;         this.name = fault.getName();        Part part = getFaultPart();        if (part == null) {            this.qName = null;        } else if (part.getTypeName() != null) {            this.qName = new QName(namespace, part.getName());        } else {            this.qName = part.getElementName();        }    }    // ctor    /**     * This constructor creates FaultInfo for a soap:headerFault.     *      * @param fault            * @param symbolTable      * @throws IOException      */    public FaultInfo(SOAPHeaderFault fault, SymbolTable symbolTable)            throws IOException {        MessageEntry mEntry = symbolTable.getMessageEntry(fault.getMessage());        if (mEntry == null) {            throw new IOException(                    Messages.getMessage("noMsg", fault.getMessage().toString()));        }        this.message = mEntry.getMessage();        Part part = message.getPart(fault.getPart());        this.xmlType = getFaultType(symbolTable, part);        this.use = Use.getUse(fault.getUse());        if (part == null) {            this.qName = null;        } else if (part.getTypeName() != null) {            this.qName = new QName(fault.getNamespaceURI(), part.getName());        } else {            this.qName = part.getElementName();        }        this.name = qName.getLocalPart();    }    // ctor    /**     * Constructor FaultInfo     *      * @param faultMessage           * @param faultPart              * @param faultUse               * @param faultNamespaceURI      * @param symbolTable            * @throws IOException      */    public FaultInfo(            QName faultMessage, String faultPart, String faultUse, String faultNamespaceURI, SymbolTable symbolTable)            throws IOException {        MessageEntry mEntry = symbolTable.getMessageEntry(faultMessage);        if (mEntry == null) {            throw new IOException(Messages.getMessage("noMsg",                    faultMessage.toString()));        }        this.message = mEntry.getMessage();        Part part = message.getPart(faultPart);        this.xmlType = getFaultType(symbolTable, part);        this.use = Use.getUse(faultUse);        if (part == null) {            this.qName = null;        } else if (part.getTypeName() != null) {            this.qName = new QName(faultNamespaceURI, part.getName());        } else {            this.qName = part.getElementName();        }        this.name = qName.getLocalPart();    }    // ctor    /**     * Method getMessage     *      * @return      */    public Message getMessage() {        return message;    }    // getMessage    /**     * Method getXMLType     *      * @return      */    public QName getXMLType() {        return xmlType;    }    // getXMLType    /**     * Method getUse     *      * @return      */    public Use getUse() {        return use;    }    // getUse    /**     * Return the QName of a fault.  This method may return null if no parts     * are in the fault message.     * <p/>     * If the part of the fault is a type, then the QName is     * derived from the element name and the provided namespace     * (this namespace SHOULD come from the binding).     * <p/>     * If the part of the fault is an element, then the QName is     * the QName of the element, and the given namespace is ignored.     *      * @return      */    public QName getQName() {        return qName;    }    // getQName    /**     * Return the name of the fault.     * This is the name= attribute from a portType fault     * or the localname of a header fault.     *      * @return      */    public String getName() {        return name;    }    // getName    /**     * It is assumed at this point that the fault message has only     * 0 or 1 parts.  If 0, return null.  If 1, return it.     *      * @return      */    private Part getFaultPart() {        // get the name of the part        Map parts = message.getParts();        // If no parts, skip it        if (parts.size() == 0) {            return null;        } else {            return (Part) parts.values().iterator().next();        }    }    /**     * Get the XML type (QName) for a Fault - look in the (single) fault     * part for type="" or element="" - if type, return the QName.  If     * element, return the reference type for the element.     *      * @param part the Fault to dig into     * @param st   the SymbolTable we're using     * @return the XML type of the Fault's part, or null     */    private QName getFaultType(SymbolTable st, Part part) {        if (part != null) {            if (part.getTypeName() != null) {                return part.getTypeName();            }            // Literal, so get the element's type            TypeEntry entry = st.getElement(part.getElementName());            if ((entry != null) && (entry.getRefType() != null)) {                return entry.getRefType().getQName();            }        }        return null;    }}

⌨️ 快捷键说明

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