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