001 /*
002 * Copyright 2001-2004 The Apache Software Foundation.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package javax.xml.rpc.soap;
017
018 import javax.xml.namespace.QName;
019 import javax.xml.soap.Detail;
020
021 /**
022 * The <code>SOAPFaultException</code> exception represents a
023 * SOAP fault.
024 * <p>
025 * The message part in the SOAP fault maps to the contents of
026 * <code>faultdetail</code> element accessible through the
027 * <code>getDetail</code> method on the <code>SOAPFaultException</code>.
028 * The method <code>createDetail</code> on the
029 * <code>javax.xml.soap.SOAPFactory</code> creates an instance
030 * of the <code>javax.xml.soap.Detail</code>.
031 * <p>
032 * The <code>faultstring</code> provides a human-readable
033 * description of the SOAP fault. The <code>faultcode</code>
034 * element provides an algorithmic mapping of the SOAP fault.
035 * <p>
036 * Refer to SOAP 1.1 and WSDL 1.1 specifications for more
037 * details of the SOAP faults.
038 *
039 * @version 1.0
040 */
041 public class SOAPFaultException extends RuntimeException {
042
043 /**
044 * Constructor for SOAPFaultException.
045 *
046 * @param faultcode <code>QName</code> for the SOAP faultcode
047 * @param faultstring <code>faultstring</code> element of SOAP fault
048 * @param faultactor <code>faultactor</code> element of SOAP fault
049 * @param detail <code>faultdetail</code> element of SOAP fault
050 */
051 public SOAPFaultException(QName faultcode, String faultstring,
052 String faultactor, Detail detail) {
053
054 super(faultstring);
055
056 this.faultcode = faultcode;
057 this.faultstring = faultstring;
058 this.faultactor = faultactor;
059 this.detail = detail;
060 }
061
062 /**
063 * Gets the <code>faultcode</code> element. The <code>faultcode</code> element provides an algorithmic
064 * mechanism for identifying the fault. SOAP defines a small set of SOAP fault codes covering
065 * basic SOAP faults.
066 * @return QName of the faultcode element
067 */
068 public QName getFaultCode() {
069 return faultcode;
070 }
071
072 /**
073 * Gets the <code>faultstring</code> element. The faultstring provides a human-readable description of
074 * the SOAP fault and is not intended for algorithmic processing.
075 * @return <code>faultstring</code> element of the SOAP fault
076 */
077 public String getFaultString() {
078 return faultstring;
079 }
080
081 /**
082 * Gets the <code>faultactor</code> element. The <code>faultactor</code>
083 * element provides information about which SOAP node on the SOAP message
084 * path caused the fault to happen. It indicates the source of the fault.
085 *
086 * @return <code>faultactor</code> element of the SOAP fault
087 */
088 public String getFaultActor() {
089 return faultactor;
090 }
091
092 /**
093 * Gets the detail element. The detail element is intended for carrying
094 * application specific error information related to the SOAP Body.
095 *
096 * @return <code>detail</code> element of the SOAP fault
097 */
098 public Detail getDetail() {
099 return detail;
100 }
101
102 /** Qualified name of the faultcode. */
103 private QName faultcode;
104
105 /** The faultstring element of the SOAP fault. */
106 private String faultstring;
107
108 /** Faultactor element of the SOAP fault. */
109 private String faultactor;
110
111 /** Detail element of the SOAP fault. */
112 private Detail detail;
113 }