You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2009/02/05 18:21:20 UTC
svn commit: r741188 -
/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/DispatchImpl.java
Author: dkulp
Date: Thu Feb 5 17:21:18 2009
New Revision: 741188
URL: http://svn.apache.org/viewvc?rev=741188&view=rev
Log:
[CXF-2021] Add detail from fault to SoapFalt
Modified:
cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/DispatchImpl.java
Modified: cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/DispatchImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/DispatchImpl.java?rev=741188&r1=741187&r2=741188&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/DispatchImpl.java (original)
+++ cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/DispatchImpl.java Thu Feb 5 17:21:18 2009
@@ -35,6 +35,7 @@
import javax.activation.DataSource;
import javax.xml.bind.JAXBContext;
import javax.xml.namespace.QName;
+import javax.xml.soap.Detail;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPFactory;
import javax.xml.soap.SOAPFault;
@@ -53,6 +54,9 @@
import javax.xml.ws.soap.SOAPBinding;
import javax.xml.ws.soap.SOAPFaultException;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
import org.apache.cxf.Bus;
import org.apache.cxf.BusFactory;
import org.apache.cxf.binding.soap.SoapBinding;
@@ -194,6 +198,16 @@
Fault fault = (Fault)exp;
soapFault.setFaultCode(fault.getFaultCode());
soapFault.setFaultString(fault.getMessage());
+ if (fault.getDetail() != null) {
+ Detail det = soapFault.addDetail();
+ Element fd = fault.getDetail();
+ Node child = fd.getFirstChild();
+ while (child != null) {
+ Node next = child.getNextSibling();
+ det.appendChild(det.getOwnerDocument().importNode(child, true));
+ child = next;
+ }
+ }
SOAPFaultException ex = new SOAPFaultException(soapFault);
ex.initCause(exp);
throw ex;