CXF client code SOAP Fault handling

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

CXF client code SOAP Fault handling

tripham
hello, I use CXF2 to generate a WSDL consumer. Somehow the code generated by CXF2 was unable to handle SOAP fault message. Here's the exception that's being thrown :



Caused by: java.lang.ClassCastException: com.sun.xml.bind.v2.runtime.JAXBContextImpl cannot be cast to com.sun.xml.internal.bind.api.JAXBRIContext
        at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.<clinit>(SOAPFaultBuilder.java:533)
        ... 50 more

This is the raw http response by the WSDL service:


HTTP/1.1 500 Internal Server Error
Connection: close
Date: Tue, 29 Jun 2010 20:14:40 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
eaihttprespstatus: 500
dispatcherrortext: [0] INVALID_INPUT OR DATA_ERROR(SBL-BPR-00131) (WF_ERR_CUSTOM_1)
siebel-error-symbol-1: WF_ERR_CUSTOM_1
cache-control: no-cache, must-revalidate, max-age=0
pragma: no-cache
siebel-error-message-1: INVALID_INPUT OR DATA_ERROR(SBL-BPR-00131)
content-type: text/xml;charset=UTF-8
content-length: 580


<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>INVALID_INPUT OR DATA_ERROR(SBL-BPR-00131)</faultstring><detail><siebelf:errorstack xmlns:siebelf="http://www.siebel.com/ws/fault"><siebelf:error><siebelf:errorsymbol>WF_ERR_CUSTOM_1</siebelf:errorsymbol><siebelf:errormsg>INVALID_INPUT OR DATA_ERROR(SBL-BPR-00131)</siebelf:errormsg></siebelf:error></siebelf:errorstack></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>

This looks very standard SOAP Fault message. Yet a ClassCast exception is being thrown. Does anyone know what happens ?

Thanks

Reply | Threaded
Open this post in threaded view
|

Re: CXF client code SOAP Fault handling

Daniel Kulp
Administrator

This isn't using CXF on the client side.  It's using the Sun reference
implementation built into the JDK.    

Dan



On Tuesday 29 June 2010 4:20:11 pm Pham Duc Tri wrote:

> hello, I use CXF2 to generate a WSDL consumer. Somehow the code generated
> by CXF2 was unable to handle SOAP fault message. Here's the exception
> that's being thrown :
>
>
>
> Caused by: java.lang.ClassCastException:
> com.sun.xml.bind.v2.runtime.JAXBContextImpl cannot be cast to
> com.sun.xml.internal.bind.api.JAXBRIContext
>        at
> com.sun.xml.internal.ws.fault.SOAPFaultBuilder.<clinit>(SOAPFaultBuilder.ja
> va:533) ... 50 more
>
> This is the raw http response by the WSDL service:
>
>
> HTTP/1.1 500 Internal Server Error
> Connection: close
> Date: Tue, 29 Jun 2010 20:14:40 GMT
> Server: Microsoft-IIS/6.0
> X-Powered-By: ASP.NET <http://asp.net/>
> eaihttprespstatus: 500
> dispatcherrortext: [0] INVALID_INPUT OR DATA_ERROR(SBL-BPR-00131)
> (WF_ERR_CUSTOM_1)
> siebel-error-symbol-1: WF_ERR_CUSTOM_1
> cache-control: no-cache, must-revalidate, max-age=0
> pragma: no-cache
> siebel-error-message-1: INVALID_INPUT OR DATA_ERROR(SBL-BPR-00131)
> content-type: text/xml;charset=UTF-8
> content-length: 580
>
>
> <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/
> "><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><fau
> ltstring>INVALID_INPUT OR
> DATA_ERROR(SBL-BPR-00131)</faultstring><detail><siebelf:errorstack
> xmlns:siebelf="http://www.siebel.com/ws/fault
> "><siebelf:error><siebelf:errorsymbol>WF_ERR_CUSTOM_1</siebelf:errorsymbol>
> <siebelf:errormsg>INVALID_INPUT OR
> DATA_ERROR(SBL-BPR-00131)</siebelf:errormsg></siebelf:error></siebelf:error
> stack></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
>
> This looks very standard SOAP Fault message. Yet a ClassCast exception is
> being thrown. Does anyone know what happens ?
>
> Thanks

--
Daniel Kulp
[hidden email]
http://dankulp.com/blog
Reply | Threaded
Open this post in threaded view
|

Re: CXF client code SOAP Fault handling

tripham
so CXF2 is using Sun implementation for deciphering SOAP fault message. Do
you know what the root cause of this exception ? I have been looking for the
documentation's section that talks about SOAP fault message handling in
CXF2. It would help if I could see it.

Thanks

On Wed, Jun 30, 2010 at 10:01 AM, Daniel Kulp <[hidden email]> wrote:

>
> This isn't using CXF on the client side.  It's using the Sun reference
> implementation built into the JDK.
>
> Dan
>
>
>
> On Tuesday 29 June 2010 4:20:11 pm Pham Duc Tri wrote:
> > hello, I use CXF2 to generate a WSDL consumer. Somehow the code generated
> > by CXF2 was unable to handle SOAP fault message. Here's the exception
> > that's being thrown :
> >
> >
> >
> > Caused by: java.lang.ClassCastException:
> > com.sun.xml.bind.v2.runtime.JAXBContextImpl cannot be cast to
> > com.sun.xml.internal.bind.api.JAXBRIContext
> >        at
> >
> com.sun.xml.internal.ws.fault.SOAPFaultBuilder.<clinit>(SOAPFaultBuilder.ja
> > va:533) ... 50 more
> >
> > This is the raw http response by the WSDL service:
> >
> >
> > HTTP/1.1 500 Internal Server Error
> > Connection: close
> > Date: Tue, 29 Jun 2010 20:14:40 GMT
> > Server: Microsoft-IIS/6.0
> > X-Powered-By: ASP.NET <http://asp.net/>
> > eaihttprespstatus: 500
> > dispatcherrortext: [0] INVALID_INPUT OR DATA_ERROR(SBL-BPR-00131)
> > (WF_ERR_CUSTOM_1)
> > siebel-error-symbol-1: WF_ERR_CUSTOM_1
> > cache-control: no-cache, must-revalidate, max-age=0
> > pragma: no-cache
> > siebel-error-message-1: INVALID_INPUT OR DATA_ERROR(SBL-BPR-00131)
> > content-type: text/xml;charset=UTF-8
> > content-length: 580
> >
> >
> > <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope
> > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/
> >
> "><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><fau
> > ltstring>INVALID_INPUT OR
> > DATA_ERROR(SBL-BPR-00131)</faultstring><detail><siebelf:errorstack
> > xmlns:siebelf="http://www.siebel.com/ws/fault
> >
> "><siebelf:error><siebelf:errorsymbol>WF_ERR_CUSTOM_1</siebelf:errorsymbol>
> > <siebelf:errormsg>INVALID_INPUT OR
> >
> DATA_ERROR(SBL-BPR-00131)</siebelf:errormsg></siebelf:error></siebelf:error
> > stack></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
> >
> > This looks very standard SOAP Fault message. Yet a ClassCast exception is
> > being thrown. Does anyone know what happens ?
> >
> > Thanks
>
> --
> Daniel Kulp
> [hidden email]
> http://dankulp.com/blog
>
Reply | Threaded
Open this post in threaded view
|

Re: CXF client code SOAP Fault handling

Daniel Kulp
Administrator
On Wednesday 30 June 2010 2:33:10 pm Pham Duc Tri wrote:
> so CXF2 is using Sun implementation for deciphering SOAP fault message.

No.  CXF doesn't use the Sun implementation for any of this.  What I'm saying
is that CXF isn't involved here at all.   Check the classpath and such to make
sure the CXF jars are available.   If using the normal JAX-WS code, make sure
the appropriate META-INF/services/javax.xml.ws.spi.Provider file is there that
would normally be provided by either the big cxf bundle jar or the cxf-rt-
frontend-jaxws jar.

Dan



> Do
> you know what the root cause of this exception ? I have been looking for
> the documentation's section that talks about SOAP fault message handling
> in CXF2. It would help if I could see it.
>
> Thanks
>
> On Wed, Jun 30, 2010 at 10:01 AM, Daniel Kulp <[hidden email]> wrote:
> > This isn't using CXF on the client side.  It's using the Sun reference
> > implementation built into the JDK.
> >
> > Dan
> >
> > On Tuesday 29 June 2010 4:20:11 pm Pham Duc Tri wrote:
> > > hello, I use CXF2 to generate a WSDL consumer. Somehow the code
> > > generated by CXF2 was unable to handle SOAP fault message. Here's the
> > > exception that's being thrown :
> > >
> > >
> > >
> > > Caused by: java.lang.ClassCastException:
> > > com.sun.xml.bind.v2.runtime.JAXBContextImpl cannot be cast to
> > > com.sun.xml.internal.bind.api.JAXBRIContext
> > >
> > >        at
> >
> > com.sun.xml.internal.ws.fault.SOAPFaultBuilder.<clinit>(SOAPFaultBuilder.
> > ja
> >
> > > va:533) ... 50 more
> > >
> > > This is the raw http response by the WSDL service:
> > >
> > >
> > > HTTP/1.1 500 Internal Server Error
> > > Connection: close
> > > Date: Tue, 29 Jun 2010 20:14:40 GMT
> > > Server: Microsoft-IIS/6.0
> > > X-Powered-By: ASP.NET <http://asp.net/>
> > > eaihttprespstatus: 500
> > > dispatcherrortext: [0] INVALID_INPUT OR DATA_ERROR(SBL-BPR-00131)
> > > (WF_ERR_CUSTOM_1)
> > > siebel-error-symbol-1: WF_ERR_CUSTOM_1
> > > cache-control: no-cache, must-revalidate, max-age=0
> > > pragma: no-cache
> > > siebel-error-message-1: INVALID_INPUT OR DATA_ERROR(SBL-BPR-00131)
> > > content-type: text/xml;charset=UTF-8
> > > content-length: 580
> > >
> > >
> > > <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope
> > > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/
> >
> > "><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><f
> > au
> >
> > > ltstring>INVALID_INPUT OR
> > > DATA_ERROR(SBL-BPR-00131)</faultstring><detail><siebelf:errorstack
> > > xmlns:siebelf="http://www.siebel.com/ws/fault
> >
> > "><siebelf:error><siebelf:errorsymbol>WF_ERR_CUSTOM_1</siebelf:errorsymbo
> > l>
> >
> > > <siebelf:errormsg>INVALID_INPUT OR
> >
> > DATA_ERROR(SBL-BPR-00131)</siebelf:errormsg></siebelf:error></siebelf:err
> > or
> >
> > > stack></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
> > >
> > > This looks very standard SOAP Fault message. Yet a ClassCast exception
> > > is being thrown. Does anyone know what happens ?
> > >
> > > Thanks
> >
> > --
> > Daniel Kulp
> > [hidden email]
> > http://dankulp.com/blog

--
Daniel Kulp
[hidden email]
http://dankulp.com/blog
Reply | Threaded
Open this post in threaded view
|

Re: CXF client code SOAP Fault handling

Jim Talbut
I kept hitting this problem (using the Sun JAX-WS code in preference  
to CXF) and couldn't find a concrete definition of a solution for it.
So when I got my solution I blogged it:  
http://yaytay.wordpress.com/2010/03/06/lsned-29-persuading-jdk-6-to-use-cxf-classes-rather-than-its-own-avoiding-seistub/

Jim

Quoting Daniel Kulp <[hidden email]>:

> On Wednesday 30 June 2010 2:33:10 pm Pham Duc Tri wrote:
>> so CXF2 is using Sun implementation for deciphering SOAP fault message.
>
> No.  CXF doesn't use the Sun implementation for any of this.  What I'm saying
> is that CXF isn't involved here at all.   Check the classpath and  
> such to make
> sure the CXF jars are available.   If using the normal JAX-WS code, make sure
> the appropriate META-INF/services/javax.xml.ws.spi.Provider file is  
> there that
> would normally be provided by either the big cxf bundle jar or the cxf-rt-
> frontend-jaxws jar.
>
> Dan
>
>
>
>> Do
>> you know what the root cause of this exception ? I have been looking for
>> the documentation's section that talks about SOAP fault message handling
>> in CXF2. It would help if I could see it.
>>
>> Thanks
>>
>> On Wed, Jun 30, 2010 at 10:01 AM, Daniel Kulp <[hidden email]> wrote:
>> > This isn't using CXF on the client side.  It's using the Sun reference
>> > implementation built into the JDK.
>> >
>> > Dan
>> >
>> > On Tuesday 29 June 2010 4:20:11 pm Pham Duc Tri wrote:
>> > > hello, I use CXF2 to generate a WSDL consumer. Somehow the code
>> > > generated by CXF2 was unable to handle SOAP fault message. Here's the
>> > > exception that's being thrown :
>> > >
>> > >
>> > >
>> > > Caused by: java.lang.ClassCastException:
>> > > com.sun.xml.bind.v2.runtime.JAXBContextImpl cannot be cast to
>> > > com.sun.xml.internal.bind.api.JAXBRIContext
>> > >
>> > >        at
>> >
>> > com.sun.xml.internal.ws.fault.SOAPFaultBuilder.<clinit>(SOAPFaultBuilder.
>> > ja
>> >
>> > > va:533) ... 50 more
>> > >
>> > > This is the raw http response by the WSDL service:
>> > >
>> > >
>> > > HTTP/1.1 500 Internal Server Error
>> > > Connection: close
>> > > Date: Tue, 29 Jun 2010 20:14:40 GMT
>> > > Server: Microsoft-IIS/6.0
>> > > X-Powered-By: ASP.NET <http://asp.net/>
>> > > eaihttprespstatus: 500
>> > > dispatcherrortext: [0] INVALID_INPUT OR DATA_ERROR(SBL-BPR-00131)
>> > > (WF_ERR_CUSTOM_1)
>> > > siebel-error-symbol-1: WF_ERR_CUSTOM_1
>> > > cache-control: no-cache, must-revalidate, max-age=0
>> > > pragma: no-cache
>> > > siebel-error-message-1: INVALID_INPUT OR DATA_ERROR(SBL-BPR-00131)
>> > > content-type: text/xml;charset=UTF-8
>> > > content-length: 580
>> > >
>> > >
>> > > <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope
>> > > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/
>> >
>> > "><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><f
>> > au
>> >
>> > > ltstring>INVALID_INPUT OR
>> > > DATA_ERROR(SBL-BPR-00131)</faultstring><detail><siebelf:errorstack
>> > > xmlns:siebelf="http://www.siebel.com/ws/fault
>> >
>> > "><siebelf:error><siebelf:errorsymbol>WF_ERR_CUSTOM_1</siebelf:errorsymbo
>> > l>
>> >
>> > > <siebelf:errormsg>INVALID_INPUT OR
>> >
>> > DATA_ERROR(SBL-BPR-00131)</siebelf:errormsg></siebelf:error></siebelf:err
>> > or
>> >
>> > > stack></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
>> > >
>> > > This looks very standard SOAP Fault message. Yet a ClassCast exception
>> > > is being thrown. Does anyone know what happens ?
>> > >
>> > > Thanks
>> >
>> > --
>> > Daniel Kulp
>> > [hidden email]
>> > http://dankulp.com/blog
>
> --
> Daniel Kulp
> [hidden email]
> http://dankulp.com/blog
>



----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.