You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by mm...@apache.org on 2006/10/12 15:21:53 UTC
svn commit: r463242 - in /incubator/cxf/trunk:
common/common/src/main/java/org/apache/cxf/helpers/
rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/
rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/
rt/bindings/soap/src/...
Author: mmao
Date: Thu Oct 12 06:21:52 2006
New Revision: 463242
URL: http://svn.apache.org/viewvc?view=rev&rev=463242
Log:
Soap12Fault
* Re-organize SoapFault, some of SoapVersion specific attributes moved into specific SoapVersion
* Interceptors get the SoapFault attributes from SoapVersion.
* Added Soap12Fault In/Out interceptors
Added:
incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpers/XPathUtils.java (with props)
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultInInterceptor.java (with props)
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java (with props)
Modified:
incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpers/XMLUtils.java
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/Soap11.java
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/Soap12.java
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapFault.java
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersion.java
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/AbstractSoapInterceptor.java
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/MustUnderstandInterceptor.java
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/ReadHeadersInterceptor.java
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultInInterceptor.java
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultOutInterceptor.java
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapOutInterceptor.java
incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/MustUnderstandInterceptorTest.java
incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/test/AbstractCXFTest.java
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/SoapFaultTest.java
Modified: incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpers/XMLUtils.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpers/XMLUtils.java?view=diff&rev=463242&r1=463241&r2=463242
==============================================================================
--- incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpers/XMLUtils.java (original)
+++ incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpers/XMLUtils.java Thu Oct 12 06:21:52 2006
@@ -292,4 +292,26 @@
}
return ret;
}
+
+ public static QName getQName(String value, Node node) {
+ if (value == null) {
+ return null;
+ }
+
+ int index = value.indexOf(":");
+
+ if (index == -1) {
+ return new QName(value);
+ }
+
+ String prefix = value.substring(0, index);
+ String localName = value.substring(index + 1);
+ String ns = node.lookupNamespaceURI(prefix);
+
+ if (ns == null || localName == null) {
+ throw new RuntimeException("Invalid QName in mapping: " + value);
+ }
+
+ return new QName(ns, localName, prefix);
+ }
}
Added: incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpers/XPathUtils.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpers/XPathUtils.java?view=auto&rev=463242
==============================================================================
--- incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpers/XPathUtils.java (added)
+++ incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpers/XPathUtils.java Thu Oct 12 06:21:52 2006
@@ -0,0 +1,82 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.cxf.helpers;
+
+import java.util.Iterator;
+import java.util.Map;
+
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.namespace.QName;
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathFactory;
+
+import org.w3c.dom.Node;
+
+public class XPathUtils {
+
+ XPath xpath;
+
+ public XPathUtils() {
+ this(null);
+ }
+
+ public XPathUtils(Map<String, String> ns) {
+ xpath = XPathFactory.newInstance().newXPath();
+
+ if (ns != null) {
+ xpath.setNamespaceContext(new MapNamespaceContext(ns));
+ }
+ }
+
+ public Object getValue(String xpathExpression, Node node, QName type) {
+ try {
+ return xpath.evaluate(xpathExpression, node, type);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ class MapNamespaceContext implements NamespaceContext {
+ private Map<String, String> namespaces;
+
+ public MapNamespaceContext(Map<String, String> namespaces) {
+ super();
+ this.namespaces = namespaces;
+ }
+
+ public String getNamespaceURI(String prefix) {
+ return namespaces.get(prefix);
+ }
+
+ public String getPrefix(String namespaceURI) {
+ for (Map.Entry<String, String> e : namespaces.entrySet()) {
+ if (e.getValue().equals(namespaceURI)) {
+ return e.getKey();
+ }
+ }
+ return null;
+ }
+
+ public Iterator getPrefixes(String namespaceURI) {
+ return null;
+ }
+
+ }
+}
Propchange: incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpers/XPathUtils.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpers/XPathUtils.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/Soap11.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/Soap11.java?view=diff&rev=463242&r1=463241&r2=463242
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/Soap11.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/Soap11.java Thu Oct 12 06:21:52 2006
@@ -28,7 +28,7 @@
*/
public final class Soap11 implements SoapVersion {
public static final String SOAP_NAMESPACE = "http://schemas.xmlsoap.org/soap/envelope/";
-
+
private static final Soap11 INSTANCE = new Soap11();
private final double version = 1.1;
@@ -56,7 +56,7 @@
private Soap11() {
// Singleton
}
-
+
public static Soap11 getInstance() {
return INSTANCE;
}
@@ -110,7 +110,7 @@
public String getNextRole() {
return nextRole;
}
-
+
public String getAttrNameRole() {
return "actor";
}
@@ -119,4 +119,24 @@
return "mustUnderstand";
}
+ public QName getReceiver() {
+ return new QName(SOAP_NAMESPACE, "Server");
+ }
+
+ public QName getSender() {
+ return new QName(SOAP_NAMESPACE, "Client");
+ }
+
+ public QName getMustUnderstand() {
+ return new QName(SOAP_NAMESPACE, "MustUnderstand");
+ }
+
+ public QName getVersionMismatch() {
+ return new QName(SOAP_NAMESPACE, "VersionMismatch");
+ }
+
+ public QName getDateEncodingUnknown() {
+ // There is no such fault code in soap11
+ return null;
+ }
}
Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/Soap12.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/Soap12.java?view=diff&rev=463242&r1=463241&r2=463242
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/Soap12.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/Soap12.java Thu Oct 12 06:21:52 2006
@@ -120,4 +120,24 @@
return "mustUnderstand";
}
+ public QName getReceiver() {
+ return new QName(SOAP_NAMESPACE, "Receiver");
+ }
+
+ public QName getSender() {
+ return new QName(SOAP_NAMESPACE, "Sender");
+ }
+
+ public QName getMustUnderstand() {
+ return new QName(SOAP_NAMESPACE, "MustUnderstand");
+ }
+
+ public QName getVersionMismatch() {
+ return new QName(SOAP_NAMESPACE, "VersionMismatch");
+ }
+
+ public QName getDateEncodingUnknown() {
+ return new QName(SOAP_NAMESPACE, "DataEncodingUnknown");
+ }
+
}
Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java?view=diff&rev=463242&r1=463241&r2=463242
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java Thu Oct 12 06:21:52 2006
@@ -47,6 +47,8 @@
import org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor;
import org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor;
import org.apache.cxf.binding.soap.interceptor.Soap11FaultOutInterceptor;
+import org.apache.cxf.binding.soap.interceptor.Soap12FaultInInterceptor;
+import org.apache.cxf.binding.soap.interceptor.Soap12FaultOutInterceptor;
import org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor;
import org.apache.cxf.binding.soap.interceptor.SoapPreProtocolOutInterceptor;
import org.apache.cxf.binding.soap.model.SoapBindingInfo;
@@ -117,10 +119,11 @@
String bindingStyle = SoapConstants.BINDING_STYLE_DOC;
SoapBinding sb = null;
+ SoapVersion version = null;
if (binding instanceof SoapBindingInfo) {
SoapBindingInfo sbi = (SoapBindingInfo) binding;
-
- sb = new SoapBinding(sbi.getSoapVersion());
+ version = sbi.getSoapVersion();
+ sb = new SoapBinding(version);
// Service wide style
if (!StringUtils.isEmpty(sbi.getStyle())) {
bindingStyle = sbi.getStyle();
@@ -142,9 +145,7 @@
sb.getInInterceptors().add(new MultipartMessageInterceptor());
sb.getInInterceptors().add(new ReadHeadersInterceptor());
sb.getInInterceptors().add(new MustUnderstandInterceptor());
- sb.getInInterceptors().add(new StaxInInterceptor());
-
- sb.getInFaultInterceptors().add(new Soap11FaultInInterceptor());
+ sb.getInInterceptors().add(new StaxInInterceptor());
// TODO: We shouldn't be running this interceptor if MTOM isn't enabled
// as caching everything is going to slow us down, should set according to config
@@ -158,7 +159,14 @@
sb.getOutFaultInterceptors().add(new StaxOutInterceptor());
sb.getOutFaultInterceptors().add(new SoapOutInterceptor());
- sb.getOutFaultInterceptors().add(new Soap11FaultOutInterceptor());
+
+ if (version.getVersion() == 1.1) {
+ sb.getInFaultInterceptors().add(new Soap11FaultInInterceptor());
+ sb.getOutFaultInterceptors().add(new Soap11FaultOutInterceptor());
+ } else if (version.getVersion() == 1.2) {
+ sb.getInFaultInterceptors().add(new Soap12FaultInInterceptor());
+ sb.getOutFaultInterceptors().add(new Soap12FaultOutInterceptor());
+ }
if (SoapConstants.BINDING_STYLE_RPC.equalsIgnoreCase(bindingStyle)) {
sb.getInInterceptors().add(new RPCInInterceptor());
Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapFault.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapFault.java?view=diff&rev=463242&r1=463241&r2=463242
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapFault.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapFault.java Thu Oct 12 06:21:52 2006
@@ -26,20 +26,17 @@
import javax.xml.namespace.QName;
import org.apache.cxf.common.i18n.Message;
+import org.apache.cxf.common.util.StringUtils;
import org.apache.cxf.interceptor.Fault;
public class SoapFault extends Fault {
- public static final QName VERSION_MISMATCH = new QName(Soap12.SOAP_NAMESPACE, "VersionMismatch");
- public static final QName MUST_UNDERSTAND = new QName(Soap12.SOAP_NAMESPACE, "MustUnderstand");
- public static final QName DATA_ENCODING_UNKNOWN = new QName(Soap12.SOAP_NAMESPACE, "DataEncodingUnknown");
public static final QName ATTACHMENT_IO = new QName(Soap12.SOAP_NAMESPACE, "AttachmentIOError");
/**
* "The message was incorrectly formed or did not contain the appropriate
* information in order to succeed." -- SOAP 1.2 Spec
- */
- public static final QName SENDER = new QName(Soap12.SOAP_NAMESPACE, "Sender");
+ */
/**
* A SOAP 1.2 only fault code. <p/> "The message could not be processed for
@@ -47,22 +44,17 @@
* contents of the message itself." -- SOAP 1.2 Spec <p/> If this message is
* used in a SOAP 1.1 Fault it will most likely (depending on the
* FaultHandler) be mapped to "Sender" instead.
- */
- public static final QName RECEIVER = new QName(Soap12.SOAP_NAMESPACE, "Receiver");
-
- public static final QName SOAP11_SERVER = new QName(Soap11.SOAP_NAMESPACE, "Server");
- public static final QName SOAP11_CLIENT = new QName(Soap11.SOAP_NAMESPACE, "Client");
- public static final QName SOAP11_MUST_UNDERSTAND = new QName(Soap11.SOAP_NAMESPACE, "MustUnderstand");
- public static final QName SOAP11_VERSION_MISMATCH = new QName(Soap11.SOAP_NAMESPACE, "VersionMismatch");
+ */
private QName faultCode;
private QName subCode;
private String role;
+ private String node;
private Map<String, String> namespaces = new HashMap<String, String>();
- public SoapFault(Message message, Throwable throwable, QName type) {
+ public SoapFault(Message message, Throwable throwable, QName faultCode) {
super(message, throwable);
- this.faultCode = type;
+ this.faultCode = faultCode;
}
public SoapFault(Message message, QName faultCode) {
@@ -83,6 +75,28 @@
public QName getFaultCode() {
return faultCode;
}
+
+ public String getCodeString(String prefix, String defaultPrefix) {
+ return getFaultCodeString(prefix, defaultPrefix, faultCode);
+ }
+
+ public String getSubCodeString(String prefix, String defaultPrefix) {
+ return getFaultCodeString(prefix, defaultPrefix, subCode);
+ }
+
+ private String getFaultCodeString(String prefix, String defaultPrefix, QName fCode) {
+ String codePrefix = null;
+ if (StringUtils.isEmpty(prefix)) {
+ codePrefix = fCode.getPrefix();
+ if (StringUtils.isEmpty(codePrefix)) {
+ codePrefix = defaultPrefix;
+ }
+ } else {
+ codePrefix = prefix;
+ }
+
+ return prefix + ":" + fCode.getLocalPart();
+ }
/**
* Sets the fault code of this fault.
@@ -114,6 +128,14 @@
public void setRole(String actor) {
this.role = actor;
}
+
+ public String getNode() {
+ return node;
+ }
+
+ public void setNode(String n) {
+ this.node = n;
+ }
/**
* Returns the SubCode for the Fault Code.
@@ -141,13 +163,14 @@
this.namespaces = namespaces;
}
- public static SoapFault createFault(Fault f) {
+ public static SoapFault createFault(Fault f, SoapVersion v) {
if (f instanceof SoapFault) {
return (SoapFault)f;
}
SoapFault soapFault = new SoapFault(new Message(f.getMessage(), (ResourceBundle)null), f.getCause(),
- RECEIVER);
+ v.getReceiver());
+
soapFault.setDetail(f.getDetail());
return soapFault;
}
Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersion.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersion.java?view=diff&rev=463242&r1=463241&r2=463242
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersion.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapVersion.java Thu Oct 12 06:21:52 2006
@@ -39,6 +39,16 @@
QName getBody();
QName getFault();
+
+ QName getReceiver();
+
+ QName getSender();
+
+ QName getMustUnderstand();
+
+ QName getVersionMismatch();
+
+ QName getDateEncodingUnknown();
String getSoapEncodingStyle();
Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/AbstractSoapInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/AbstractSoapInterceptor.java?view=diff&rev=463242&r1=463241&r2=463242
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/AbstractSoapInterceptor.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/AbstractSoapInterceptor.java Thu Oct 12 06:21:52 2006
@@ -24,9 +24,12 @@
import java.util.Set;
import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
import org.apache.cxf.binding.soap.SoapMessage;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
+import org.apache.cxf.staxutils.StaxUtils;
public abstract class AbstractSoapInterceptor extends AbstractPhaseInterceptor<SoapMessage>
implements SoapInterceptor {
@@ -43,4 +46,13 @@
public Set<QName> getUnderstoodHeaders() {
return Collections.emptySet();
}
+
+ protected String getFaultCodePrefix(XMLStreamWriter writer, QName faultCode) throws XMLStreamException {
+ String codeNs = faultCode.getNamespaceURI();
+ String prefix = null;
+ if (codeNs.length() > 0) {
+ prefix = StaxUtils.getUniquePrefix(writer, codeNs, true);
+ }
+ return prefix;
+ }
}
Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/MustUnderstandInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/MustUnderstandInterceptor.java?view=diff&rev=463242&r1=463241&r2=463242
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/MustUnderstandInterceptor.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/MustUnderstandInterceptor.java Thu Oct 12 06:21:52 2006
@@ -34,6 +34,7 @@
import org.apache.cxf.binding.soap.HeaderUtil;
import org.apache.cxf.binding.soap.SoapFault;
import org.apache.cxf.binding.soap.SoapMessage;
+import org.apache.cxf.binding.soap.SoapVersion;
import org.apache.cxf.common.i18n.Message;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.interceptor.Interceptor;
@@ -50,6 +51,7 @@
}
public void handleMessage(SoapMessage soapMessage) {
+ SoapVersion soapVersion = soapMessage.getVersion();
//Client-in message needs not to handle MustUnderstand
if (isRequestor(soapMessage)) {
return;
@@ -70,7 +72,7 @@
}
sb.delete(pos - 2, pos);
throw new SoapFault(new Message("MUST_UNDERSTAND", BUNDLE, sb.toString()),
- SoapFault.MUST_UNDERSTAND);
+ soapVersion.getMustUnderstand());
}
}
Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/ReadHeadersInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/ReadHeadersInterceptor.java?view=diff&rev=463242&r1=463241&r2=463242
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/ReadHeadersInterceptor.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/ReadHeadersInterceptor.java Thu Oct 12 06:21:52 2006
@@ -90,7 +90,8 @@
xmlReader.next();
}
} catch (XMLStreamException e) {
- throw new SoapFault(new Message("XML_STREAM_EXC", BUNDLE), e, SoapFault.SENDER);
+ throw new SoapFault(new Message("XML_STREAM_EXC", BUNDLE), e,
+ message.getVersion().getSender());
}
}
Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultInInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultInInterceptor.java?view=diff&rev=463242&r1=463241&r2=463242
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultInInterceptor.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultInInterceptor.java Thu Oct 12 06:21:52 2006
@@ -54,7 +54,8 @@
}
}
} catch (XMLStreamException e) {
- throw new SoapFault("Could not parse message.", SoapFault.SENDER);
+ throw new SoapFault("Could not parse message.",
+ message.getVersion().getSender());
}
SoapFault fault = new SoapFault(exMessage, faultCode);
Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultOutInterceptor.java?view=diff&rev=463242&r1=463241&r2=463242
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultOutInterceptor.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultOutInterceptor.java Thu Oct 12 06:21:52 2006
@@ -22,7 +22,6 @@
import java.util.Map;
import java.util.ResourceBundle;
-import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamWriter;
@@ -49,7 +48,7 @@
XMLStreamWriter writer = message.getContent(XMLStreamWriter.class);
Fault f = (Fault)message.getContent(Exception.class);
- SoapFault fault = SoapFault.createFault(f);
+ SoapFault fault = SoapFault.createFault(f, message.getVersion());
try {
Map<String, String> namespaces = fault.getNamespaces();
@@ -58,33 +57,14 @@
}
String ns = message.getVersion().getNamespace();
- String prefix = StaxUtils.getUniquePrefix(writer, ns, true);
+ String defaultPrefix = StaxUtils.getUniquePrefix(writer, ns, true);
- writer.writeStartElement(prefix, "Fault", ns);
+ writer.writeStartElement(defaultPrefix, "Fault", ns);
- writer.writeStartElement("faultcode");
-
- QName faultCode = fault.getFaultCode();
- String codeString;
- if (faultCode.equals(SoapFault.RECEIVER)) {
- codeString = prefix + ":Server";
- } else if (faultCode.equals(SoapFault.SENDER)) {
- codeString = prefix + ":Client";
- } else if (faultCode.equals(SoapFault.VERSION_MISMATCH)) {
- codeString = prefix + ":VersionMismatch";
- } else if (faultCode.equals(SoapFault.MUST_UNDERSTAND)) {
- codeString = prefix + ":MustUnderstand";
- } else if (faultCode.equals(SoapFault.DATA_ENCODING_UNKNOWN)) {
- codeString = prefix + ":Client";
- } else {
- String codeNs = faultCode.getNamespaceURI();
- String codePrefix = faultCode.getPrefix();
- if (codeNs.length() > 0) {
- codePrefix = StaxUtils.getUniquePrefix(writer, codeNs, true) + ":";
- }
-
- codeString = codePrefix + faultCode.getLocalPart();
- }
+ writer.writeStartElement("faultcode");
+
+ String codeString = fault.getCodeString(getFaultCodePrefix(writer, fault.getFaultCode()),
+ defaultPrefix);
writer.writeCharacters(codeString);
writer.writeEndElement();
@@ -121,6 +101,5 @@
} catch (XMLStreamException xe) {
throw new Fault(new Message("XML_WRITE_EXC", BUNDLE), xe);
}
- }
-
+ }
}
Added: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultInInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultInInterceptor.java?view=auto&rev=463242
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultInInterceptor.java (added)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultInInterceptor.java Thu Oct 12 06:21:52 2006
@@ -0,0 +1,106 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.cxf.binding.soap.interceptor;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.xpath.XPathConstants;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+import org.apache.cxf.binding.soap.Soap12;
+import org.apache.cxf.binding.soap.SoapFault;
+import org.apache.cxf.binding.soap.SoapMessage;
+import org.apache.cxf.common.util.StringUtils;
+import org.apache.cxf.helpers.XMLUtils;
+import org.apache.cxf.helpers.XPathUtils;
+import org.apache.cxf.interceptor.Fault;
+import org.apache.cxf.staxutils.FragmentStreamReader;
+import org.apache.cxf.staxutils.StaxUtils;
+
+public class Soap12FaultInInterceptor extends AbstractSoapInterceptor {
+
+ public void handleMessage(SoapMessage message) throws Fault {
+ String exMessage = null;
+ QName faultCode = null;
+ QName subCode = null;
+ String role = null;
+ String node = null;
+ Element detail = null;
+
+ XMLStreamReader reader = message.getContent(XMLStreamReader.class);
+ Map<String, String> ns = new HashMap<String, String>();
+ ns.put("soap12", Soap12.SOAP_NAMESPACE);
+ XPathUtils xu = new XPathUtils(ns);
+
+ try {
+ Document fault = StaxUtils.read(new FragmentStreamReader(reader));
+ String faultCodeString = (String) xu.getValue("//soap12:Fault/Code/Value/text()",
+ fault,
+ XPathConstants.STRING);
+
+ faultCode = XMLUtils.getQName(faultCodeString, fault);
+
+ String subCodeString = (String) xu.getValue("//soap12:Fault/Code/Subcode/Value/text()",
+ fault,
+ XPathConstants.STRING);
+ if (StringUtils.isEmpty(subCodeString)) {
+ subCode = XMLUtils.getQName(subCodeString, fault);
+ }
+
+ exMessage = (String) xu.getValue("//soap12:Fault/Reason/Text/text()",
+ fault,
+ XPathConstants.STRING);
+
+ Node detailNode = (Node) xu.getValue("//soap12:Fault/Detail",
+ fault,
+ XPathConstants.NODE);
+ if (detailNode != null) {
+ detail = (Element) detailNode;
+ }
+
+ role = (String) xu.getValue("//soap12:Fault/Role/text()",
+ fault,
+ XPathConstants.STRING);
+
+ node = (String) xu.getValue("//soap12:Fault/Node/text()",
+ fault,
+ XPathConstants.STRING);
+ } catch (XMLStreamException e) {
+ throw new SoapFault("Could not parse message.",
+ message.getVersion().getSender());
+ }
+
+ SoapFault fault = new SoapFault(exMessage, faultCode);
+ fault.setSubCode(subCode);
+ fault.setDetail(detail);
+ fault.setRole(role);
+ fault.setNode(node);
+
+ message.setContent(Exception.class, fault);
+ }
+
+}
Propchange: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultInInterceptor.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultInInterceptor.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java?view=auto&rev=463242
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java (added)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java Thu Oct 12 06:21:52 2006
@@ -0,0 +1,124 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.cxf.binding.soap.interceptor;
+
+import java.util.Map;
+import java.util.ResourceBundle;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
+import org.apache.cxf.binding.soap.SoapFault;
+import org.apache.cxf.binding.soap.SoapMessage;
+import org.apache.cxf.common.i18n.BundleUtils;
+import org.apache.cxf.common.i18n.Message;
+import org.apache.cxf.common.util.StringUtils;
+import org.apache.cxf.interceptor.Fault;
+import org.apache.cxf.phase.Phase;
+import org.apache.cxf.staxutils.StaxUtils;
+
+public class Soap12FaultOutInterceptor extends AbstractSoapInterceptor {
+ private static final ResourceBundle BUNDLE = BundleUtils.getBundle(Soap12FaultOutInterceptor.class);
+
+ public Soap12FaultOutInterceptor() {
+ super();
+ setPhase(Phase.MARSHAL);
+ }
+
+ public void handleMessage(SoapMessage message) throws Fault {
+ XMLStreamWriter writer = message.getContent(XMLStreamWriter.class);
+ Fault f = (Fault)message.getContent(Exception.class);
+
+ SoapFault fault = SoapFault.createFault(f, message.getVersion());
+
+ try {
+ Map<String, String> namespaces = fault.getNamespaces();
+ for (Map.Entry<String, String> e : namespaces.entrySet()) {
+ writer.writeNamespace(e.getKey(), e.getValue());
+ }
+
+ String ns = message.getVersion().getNamespace();
+ String defaultPrefix = StaxUtils.getUniquePrefix(writer, ns, true);
+
+ writer.writeStartElement(defaultPrefix, "Fault", ns);
+
+ writer.writeStartElement("Code");
+ writer.writeStartElement("Value");
+
+ writer.writeCharacters(fault.getCodeString(getFaultCodePrefix(writer, fault.getFaultCode()),
+ defaultPrefix));
+ writer.writeEndElement();
+
+ if (fault.getSubCode() != null) {
+ writer.writeStartElement("Subcode");
+ writer.writeCharacters(fault.getSubCodeString(getFaultCodePrefix(writer, fault.getSubCode()),
+ defaultPrefix));
+ writer.writeEndElement();
+ }
+ writer.writeEndElement();
+
+ writer.writeStartElement("Reason");
+ writer.writeStartElement("Text");
+ writer.writeAttribute("xml", "http://www.w3.org/XML/1998/namespace", "lang ", getLangCode());
+ if (fault.getMessage() != null) {
+ writer.writeCharacters(fault.getMessage());
+ } else {
+ writer.writeCharacters("Fault occurred while processing.");
+ }
+ writer.writeEndElement();
+ writer.writeEndElement();
+
+ if (fault.hasDetails()) {
+ Element detail = fault.getDetail();
+ writer.writeStartElement("Detail");
+
+ NodeList details = detail.getChildNodes();
+ for (int i = 0; i < details.getLength(); i++) {
+ StaxUtils.writeNode(details.item(i), writer, true);
+ }
+
+ // Details
+ writer.writeEndElement();
+ }
+
+ if (fault.getRole() != null) {
+ writer.writeStartElement("faultactor");
+ writer.writeCharacters(fault.getRole());
+ writer.writeEndElement();
+ }
+
+ // Fault
+ writer.writeEndElement();
+ } catch (XMLStreamException xe) {
+ throw new Fault(new Message("XML_WRITE_EXC", BUNDLE), xe);
+ }
+ }
+
+ private String getLangCode() {
+ String code = BUNDLE.getLocale().getDisplayLanguage();
+ if (StringUtils.isEmpty(code)) {
+ return "en";
+ }
+ return code;
+ }
+}
Propchange: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapOutInterceptor.java?view=diff&rev=463242&r1=463241&r2=463242
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapOutInterceptor.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapOutInterceptor.java Thu Oct 12 06:21:52 2006
@@ -62,10 +62,10 @@
}
public void handleMessage(SoapMessage message) {
+ SoapVersion soapVersion = message.getVersion();
try {
XMLStreamWriter xtw = message.getContent(XMLStreamWriter.class);
- message.setContent(XMLStreamWriter.class, xtw);
- SoapVersion soapVersion = message.getVersion();
+ message.setContent(XMLStreamWriter.class, xtw);
xtw.setPrefix(soapVersion.getPrefix(), soapVersion.getNamespace());
xtw.writeStartElement(soapVersion.getPrefix(),
@@ -97,7 +97,7 @@
} catch (XMLStreamException e) {
throw new SoapFault(
- new org.apache.cxf.common.i18n.Message("XML_WRITE_EXC", BUNDLE), e, SoapFault.SENDER);
+ new org.apache.cxf.common.i18n.Message("XML_WRITE_EXC", BUNDLE), e, soapVersion.getSender());
}
}
@@ -154,7 +154,7 @@
} catch (XMLStreamException e) {
throw new SoapFault(
new org.apache.cxf.common.i18n.Message("XML_WRITE_EXC", BUNDLE),
- e, SoapFault.SENDER);
+ e, soapVersion.getSender());
}
startedHeader = true;
@@ -171,7 +171,7 @@
} catch (XMLStreamException e) {
throw new SoapFault(
new org.apache.cxf.common.i18n.Message("XML_WRITE_EXC", BUNDLE),
- e, SoapFault.SENDER);
+ e, soapVersion.getSender());
}
}
}
Modified: incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/MustUnderstandInterceptorTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/MustUnderstandInterceptorTest.java?view=diff&rev=463242&r1=463241&r2=463242
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/MustUnderstandInterceptorTest.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/MustUnderstandInterceptorTest.java Thu Oct 12 06:21:52 2006
@@ -92,7 +92,7 @@
if (ie == null) {
fail("InBound Exception Missing! Exception should be Can't understands QNames: " + PASSENGER);
} else {
- assertEquals(SoapFault.MUST_UNDERSTAND, ie.getFaultCode());
+ assertEquals(soapMessage.getVersion().getMustUnderstand(), ie.getFaultCode());
assertEquals("Can not understand QNames: " + PASSENGER, ie.getMessage().toString());
}
}
Modified: incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java?view=diff&rev=463242&r1=463241&r2=463242
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java Thu Oct 12 06:21:52 2006
@@ -22,11 +22,14 @@
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
+import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
import org.w3c.dom.Document;
+import org.apache.cxf.binding.soap.Soap11;
+import org.apache.cxf.binding.soap.Soap12;
import org.apache.cxf.binding.soap.SoapFault;
import org.apache.cxf.binding.soap.SoapMessage;
import org.apache.cxf.helpers.DOMUtils;
@@ -37,7 +40,7 @@
public class SoapFaultSerializerTest extends AbstractCXFTest {
public void testSoap11Out() throws Exception {
String faultString = "Hadrian caused this Fault!";
- SoapFault fault = new SoapFault(faultString, SoapFault.SENDER);
+ SoapFault fault = new SoapFault(faultString, Soap11.getInstance().getSender());
SoapMessage m = new SoapMessage(new MessageImpl());
m.setContent(Exception.class, fault);
@@ -71,6 +74,54 @@
SoapFault fault2 = (SoapFault)m.getContent(Exception.class);
assertNotNull(fault2);
assertEquals(fault.getMessage(), fault2.getMessage());
- assertEquals(SoapFault.SOAP11_CLIENT, fault2.getFaultCode());
+ assertEquals(Soap11.getInstance().getSender(), fault2.getFaultCode());
}
+
+ public void testSoap12Out() throws Exception {
+ String faultString = "Hadrian caused this Fault!";
+ SoapFault fault = new SoapFault(faultString, Soap12.getInstance().getSender());
+
+ QName qname = new QName("http://cxf.apache.org/soap/fault", "invalidsoap", "cxffaultcode");
+ fault.setSubCode(qname);
+
+ SoapMessage m = new SoapMessage(new MessageImpl());
+ m.setVersion(Soap12.getInstance());
+
+ m.setContent(Exception.class, fault);
+
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ XMLStreamWriter writer = StaxUtils.createXMLStreamWriter(out);
+ writer.writeStartDocument();
+ writer.writeStartElement("Body");
+
+ m.setContent(XMLStreamWriter.class, writer);
+
+ Soap12FaultOutInterceptor interceptor = new Soap12FaultOutInterceptor();
+ interceptor.handleMessage(m);
+
+ writer.writeEndElement();
+ writer.writeEndDocument();
+ writer.close();
+
+ Document faultDoc = DOMUtils.readXml(new ByteArrayInputStream(out.toByteArray()));
+
+ assertValid("//soap12env:Fault/Code/Value[text()='ns1:Sender']", faultDoc);
+ assertValid("//soap12env:Fault/Code/Subcode[text()='ns2:invalidsoap']", faultDoc);
+ assertValid("//soap12env:Fault/Reason/Text[@xml:lang='en']", faultDoc);
+ assertValid("//soap12env:Fault/Reason/Text[text()='" + faultString + "']", faultDoc);
+
+ XMLStreamReader reader = StaxUtils.createXMLStreamReader(new ByteArrayInputStream(out.toByteArray()));
+ m.setContent(XMLStreamReader.class, reader);
+
+ reader.nextTag();
+
+ Soap12FaultInInterceptor inInterceptor = new Soap12FaultInInterceptor();
+ inInterceptor.handleMessage(m);
+
+ SoapFault fault2 = (SoapFault)m.getContent(Exception.class);
+ assertNotNull(fault2);
+ assertEquals(fault.getMessage(), fault2.getMessage());
+ assertEquals(Soap12.getInstance().getSender(), fault2.getFaultCode());
+ }
+
}
Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/test/AbstractCXFTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/test/AbstractCXFTest.java?view=diff&rev=463242&r1=463241&r2=463242
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/test/AbstractCXFTest.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/test/AbstractCXFTest.java Thu Oct 12 06:21:52 2006
@@ -71,7 +71,8 @@
addNamespace("wsdl", "http://schemas.xmlsoap.org/wsdl/");
addNamespace("wsdlsoap", "http://schemas.xmlsoap.org/wsdl/soap/");
addNamespace("soap", "http://schemas.xmlsoap.org/soap/");
-
+ addNamespace("soap12env", "http://www.w3.org/2003/05/soap-envelope");
+ addNamespace("xml", "http://www.w3.org/XML/1998/namespace");
}
public Bus getBus() {
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/SoapFaultTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/SoapFaultTest.java?view=diff&rev=463242&r1=463241&r2=463242
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/SoapFaultTest.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/SoapFaultTest.java Thu Oct 12 06:21:52 2006
@@ -100,7 +100,7 @@
}
public void handleMessage(SoapMessage message) throws Fault {
- throw new SoapFault("I blame Hadrian.", SoapFault.SENDER);
+ throw new SoapFault("I blame Hadrian.", message.getVersion().getSender());
}
}