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

📄 soapfault.java

📁 Java有关XML编程需要用到axis 的源代码 把里面bin下的包导入相应的Java工程 进行使用
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * 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.message;import org.apache.axis.AxisFault;import org.apache.axis.Constants;import org.apache.axis.description.FaultDesc;import org.apache.axis.description.OperationDesc;import org.apache.axis.encoding.DeserializationContext;import org.apache.axis.encoding.SerializationContext;import org.apache.axis.soap.SOAPConstants;import org.apache.axis.utils.Messages;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.xml.sax.Attributes;import org.xml.sax.helpers.AttributesImpl;import javax.xml.namespace.QName;import javax.xml.soap.DetailEntry;import javax.xml.soap.Name;import javax.xml.soap.SOAPElement;import javax.xml.soap.SOAPException;import java.util.List;import java.util.Locale;import java.util.Iterator;/** A Fault body element. * * @author Sam Ruby (rubys@us.ibm.com) * @author Glen Daniels (gdaniels@apache.org) * @author Tom Jordahl (tomj@macromedia.com) */public class SOAPFault extends SOAPBodyElement implements javax.xml.soap.SOAPFault{    protected AxisFault fault;    protected String prefix;    private java.util.Locale locale;    protected Detail detail = null;        public SOAPFault(String namespace, String localName, String prefix,                     Attributes attrs, DeserializationContext context)        throws AxisFault    {        super(namespace, localName, prefix, attrs, context);    }        public SOAPFault(AxisFault fault)    {        this.fault = fault;    }        public void outputImpl(SerializationContext context)            throws Exception    {        SOAPConstants soapConstants = context.getMessageContext() == null ?                                        SOAPConstants.SOAP11_CONSTANTS :                                        context.getMessageContext().getSOAPConstants();        namespaceURI = soapConstants.getEnvelopeURI();        name = Constants.ELEM_FAULT;                context.registerPrefixForURI(prefix, soapConstants.getEnvelopeURI());        context.startElement(new QName(this.getNamespaceURI(),                                       this.getName()),                             attributes);                // XXX - Can fault be anything but an AxisFault here?        if (fault instanceof AxisFault) {            AxisFault axisFault = fault;            if (axisFault.getFaultCode() != null) {                // Do this BEFORE starting the element, so the prefix gets                // registered if needed.                if (soapConstants == SOAPConstants.SOAP12_CONSTANTS) {                    String faultCode = context.qName2String(axisFault.getFaultCode());                    context.startElement(Constants.QNAME_FAULTCODE_SOAP12, null);                    context.startElement(Constants.QNAME_FAULTVALUE_SOAP12, null);                    context.writeSafeString(faultCode);                    context.endElement();                    QName[] subcodes = axisFault.getFaultSubCodes();                    if (subcodes != null) {                        for (int i = 0; i < subcodes.length; i++) {                            faultCode = context.qName2String(subcodes[i]);                            context.startElement(Constants.QNAME_FAULTSUBCODE_SOAP12, null);                            context.startElement(Constants.QNAME_FAULTVALUE_SOAP12, null);                            context.writeSafeString(faultCode);                            context.endElement();                        }                        for (int i = 0; i < subcodes.length; i++)                            context.endElement();                    }                    context.endElement();                } else {                    String faultCode = context.qName2String(axisFault.getFaultCode());                    context.startElement(Constants.QNAME_FAULTCODE, null);                    context.writeSafeString(faultCode);                    context.endElement();                }            }                        if (axisFault.getFaultString() != null) {                if (soapConstants == SOAPConstants.SOAP12_CONSTANTS) {                    context.startElement(Constants.QNAME_FAULTREASON_SOAP12, null);                    AttributesImpl attrs = new AttributesImpl();                    attrs.addAttribute("http://www.w3.org/XML/1998/namespace", "lang", "xml:lang", "CDATA", "en");                    context.startElement(Constants.QNAME_TEXT_SOAP12, attrs);                } else                    context.startElement(Constants.QNAME_FAULTSTRING, null);                context.writeSafeString(axisFault.getFaultString());                context.endElement();                if (soapConstants == SOAPConstants.SOAP12_CONSTANTS) {                    context.endElement();                }            }                        if (axisFault.getFaultActor() != null) {                if (soapConstants == SOAPConstants.SOAP12_CONSTANTS)                    context.startElement(Constants.QNAME_FAULTROLE_SOAP12, null);                else                    context.startElement(Constants.QNAME_FAULTACTOR, null);                context.writeSafeString(axisFault.getFaultActor());                context.endElement();            }            if (axisFault.getFaultNode() != null) {                if (soapConstants == SOAPConstants.SOAP12_CONSTANTS) {                    context.startElement(Constants.QNAME_FAULTNODE_SOAP12, null);                    context.writeSafeString(axisFault.getFaultNode());                    context.endElement();                }            }                        // get the QName for this faults detail element            QName qname = getFaultQName(fault.getClass(), context);            if (qname == null && fault.detail != null) {                qname = getFaultQName(fault.detail.getClass(), context);            }            if (qname == null) {                // not the greatest, but...                qname = new QName("", "faultData");            }            Element[] faultDetails = axisFault.getFaultDetails();            if (faultDetails != null) {                if (soapConstants == SOAPConstants.SOAP12_CONSTANTS)                    context.startElement(Constants.QNAME_FAULTDETAIL_SOAP12, null);                else                    context.startElement(Constants.QNAME_FAULTDETAILS, null);                // Allow the fault to write its data, if any                axisFault.writeDetails(qname, context);                // Then output any other elements                for (int i = 0; i < faultDetails.length; i++) {                    context.writeDOMElement(faultDetails[i]);                }                if (detail!= null) {                    for (Iterator it = detail.getChildren().iterator(); it.hasNext();) {                        ((NodeImpl)it.next()).output(context);                    }                }                        context.endElement();            }        }                context.endElement();    }    private QName getFaultQName(Class cls, SerializationContext context) {        QName qname = null;               if (! cls.equals(AxisFault.class)) {            FaultDesc faultDesc = null;            if (context.getMessageContext() != null) {                OperationDesc op = context.getMessageContext().getOperation();                if (op != null) {                    faultDesc = op.getFaultByClass(cls);                }            }                            if (faultDesc != null) {                qname = faultDesc.getQName();            }        }        return qname;    }    public AxisFault getFault()    {        return fault;    }        public void setFault(AxisFault fault)    {        this.fault = fault;    }        /**     * Sets this <CODE>SOAPFaultException</CODE> object with the given     *   fault code.

⌨️ 快捷键说明

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