Dan,

I see you are back, could you tell how to properly propagate Runtime
execption to the client?
I think I have tried most everything and no matter if my port declater my
WSAuthFault if the interceptor throws it, the client get genertic SoapFault.
Something is there with WSDL generator not making it apparent for the client
what kind of exception is coming its way.. For now I ended up using
faultcode
for everything, which is kind of lame, but it works for all clients at least

Thanks,
-Vitaly


vickatvuuch wrote:
> 
> Hi All,
> 
> I have this small Fault handling issue, which is hopefully me doing it
> wrong somewhere..
> So, I have defined a class WSAuthFault which is thrown by a IN interceptor
> and Auth port as well. 
> The server side exception hierarchy is defined like this:
> 
> @WebFault(name="AuthFault")
> @XmlAccessorType( XmlAccessType.FIELD )
> public class WSAuthFault extends WSBaseFault {
> 
> @WebFault(name="BaseFault")
> @XmlAccessorType( XmlAccessType.FIELD )
> public class WSBaseFault extends WebServiceException
> 
> I have a Auth port with a method that explicitly throws this exception as
> to make it explicitly available in the code-first generated WSDL, ie:
> 
> @WebService(endpointInterface =
> "com.foo.sl.webservices.v1.ports.auth.AuthWService")
> @Path("/Auth")
> @Produces({"application/xml", "application/json"})
> @Consumes({"application/xml", "application/json"})
> public class AuthWServiceImpl extends AbstractAuthServiceImpl implements
> AuthWService
> ..
> ..
>   @GET
>   @Path("/login")
>   public WSSessionInfo login(@QueryParam("") WSAuthRequest auth) throws
> WSAuthFault
>   
> This produces a WSDL like one attached below.
> 
> The Soap response looks like this (ignore faultcode as I have changed it a
> bit to have is more useful):
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
>    <soap:Body>
>       <soap:Fault>
>          <faultcode
> xmlns:ns1="http://cxf.apache.org/faultcode";>ns1:ErrorCode.ACCESS_DENIED_ERROR</faultcode>
>          <faultstring>Auth.login failed</faultstring>
>          <detail>
>             <ns1:AuthFault
> xmlns:ns1="http://auth.ports.v1.webservices.sl.foo.com/";>
>                <message xsi:nil="true"
> xmlns:ns2="http://auth.ports.v1.webservices.sl.foo.com/";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
>             </ns1:AuthFault>
>          </detail>
>       </soap:Fault>
>    </soap:Body>
> </soap:Envelope>
> 
> The problem is that once I use this code-first WSDL, on the CXF client
> side, it all works, but instead of an expected WSAuthFault exception a
> generic SOAPFaultException is thrown instead. I also tried the same from
> C# and I also get a generic exception of type
> System.Web.Services.Protocols.SoapException.
> 
> Anybody can tell what may be wrong and why the client is getting generic
> exceptions?
> 
> Any help is much appreciated.
> 
> Thanks,
> -Vitaly
>  http://old.nabble.com/file/p26566528/auth.wsdl auth.wsdl 
> 

-- 
View this message in context: 
http://old.nabble.com/CXF-2.2.5-code-first-WSDL-exceptions-problem-tp26566528p26633898.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to