You may just need to put an interceptor on the FaultInChain that would remap 
it to a full exception of some sort.   If you put it late in the chain, you 
can probably call:

Exception f = message.getContent(Exception.class);
which would probably be a CXF Fault exception class. (specifically, the 
SoapFault subclass)  You can remap the exception to anything you want (or even 
throw a new RuntimeException of some sort).

Dan

On Tuesday 23 March 2010 3:47:24 pm SmellTheGlove wrote:
> I have a customer that is using Axis.  They are sending faults that are not
> in the WSDL they have supplied me and that I brought into CXF.  The SOAP
> headers look like:
> 
> HTTP/1.1 500 Internal Server Error
> Server: Apache-Coyote/1.1
> X-Powered-By: Servlet 2.4; JBoss-4. 2.2.GA (build: SVNTag=JBoss_4_2_2_GA
> date=200710221139)/Tomcat-5.5
> Content-Type: application/soap+xml;
> action="http://www.w3.org/2005/08/addressing/soap/fault";charset=UTF-8
> Date: Mon, 22 Mar 2010 21:55:52 GMT
> Connection: close
> 
> <?xml version='1.0' encoding='UTF-8'?>
>     <soapenv:Envelope
> xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope";>
>         <soapenv:Body>
>             <soapenv:Fault
> xmlns:aovexns="urn:com.company.services.exceptions.InvalidArgumentsExceptio
> n"> <soapenv:Code>
>                     <soapenv:Value>aovexns:IA01</soapenv:Value>
>                 </soapenv:Code>
>                 <soapenv:Reason>
>                     <soapenv:Text xml:lang="en-US">Invalid
> arguments</soapenv:Text>
>                 </soapenv:Reason>
>                 <soapenv:Detail><Exception>org.apache.axis2.AxisFault:
> Invalid arguments
>                      stack
>                 </soapenv:Detail>
>             </soapenv:Fault>
>         </soapenv:Body>
>     </soapenv:Envelope>
> 
> 
> My code spits out:
> 
> Mar 23, 2010 12:41:55 PM
> com.sun.xml.messaging.saaj.soap.ver1_2.Fault1_2Impl
> checkIfStandardFaultCode
> SEVERE: SAAJ0435: {urn:com.company.services.exceptions.Exception}01 is not
> a standard Code value
> Exception: null class: java.lang.reflect.UndeclaredThrowableException
> 
> 
> I'd like to be able to trap this fault and send something back to my code
> that is meaningful that I can act on.
> 
> Any help is greatly appreciated.
> 
> Thanks,
> 
> Randy

-- 
Daniel Kulp
[email protected]
http://dankulp.com/blog

Reply via email to