Hi Marc

I think we could do some improvement on the MESSAGE Data format, so we could handle the customer Exception more easily. Why do you not want the HTTP 200 return to the client side?

BTW,
I am looking forward your better patch :)

Willem

Marc Giger wrote:
Hi,

Following scenario:

<camelContext id="camel" xmlns="http://activemq.apache.org/camel/schema/spring";>
<route> <from uri="cxf:bean:routerEndpoint?dataFormat=MESSAGE"/>
            <process ref="decryptProcessor"/>
            <choice>
                <when>
                    <methodCall bean="endpointSelector" method="matches"/>
                    <to uri="cxf:bean:serviceEndpoint?dataFormat=MESSAGE"/>
                </when>
                <otherwise>
                    <to uri="cxf:bean:localEndpoint"/>
                </otherwise>
            </choice>
       </route>
    </camelContext>

Where the localEndpoint is POJO (JAXB).

The requirements are the following:

Route the message to a local endpoint if some criteria matches in the 
endpointSelector. Otherwise do
a invoke of a remote endpoint. An important point is that the message is 
nowhere marshalled/unmarshalled when the remote
endpoint is invoked. Otherwise the wss-signature will be invalid. So handle the 
message as raw inputStream.

All is working fine so far but the localEndpoint invocation.
If I specify the dataFormat=MESSAGE on the local endpoint, it works. But an 
User generated exception will be returned as 200 http code.

Do you see any chance to get this mixes dataFormat setup somehow working with 
camel-cxf?

@Willem: I've tested your changes to the fault handling. It's better now but 
not perfect;-)
I have a patch in my queue which solves the custom soap-fault handling in 
camel-cxf. I will report it in jira.

Thanks!

Cheers,

Marc


Reply via email to