Daniel Fullarton created CAMEL-11099:
----------------------------------------

             Summary: Unhandled ClassCastException if fault detail is not 
JaxbElement
                 Key: CAMEL-11099
                 URL: https://issues.apache.org/jira/browse/CAMEL-11099
             Project: Camel
          Issue Type: Bug
          Components: camel-soap
            Reporter: Daniel Fullarton
            Priority: Minor


Hi,

I've been having some issues with handling some SOAP faults that come in with a 
detail message that is undefined in their WSDL, the result is that they end up 
as xerces dom elements rather than JAXBElements.

I end up with a pretty ugly message that looks like this : 
{noformat}
java.lang.ClassCastException: 
com.sun.org.apache.xerces.internal.dom.ElementNSImpl cannot be cast to 
javax.xml.bind.JAXBElement
        at 
org.apache.camel.dataformat.soap.Soap11DataFormatAdapter.createExceptionFromFault(Soap11DataFormatAdapter.java:195)
        at 
org.apache.camel.dataformat.soap.Soap11DataFormatAdapter.doUnmarshal(Soap11DataFormatAdapter.java:170)
        at 
org.apache.camel.dataformat.soap.SoapJaxbDataFormat.unmarshal(SoapJaxbDataFormat.java:287)
        at 
org.apache.camel.processor.UnmarshalProcessor.process(UnmarshalProcessor.java:69)
        at 
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)
        at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)
{noformat}

It's pretty had to intercept this in the pipeline, so at the moment I've 
handled parsing the response myself rather than the soap dataformat, but I 
would like to avoid this in the future as it does require a bit of custom code.

I'll create a PR that demonstrates what I believe is a reasonable workaround.

Cheers,
Daniel




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to