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

-- 

itServe AG
Marc Giger
Länggassstrasse 26
3000 Bern 9
Tel.: +41 31 305 16 16
Fax:  +41 31 305 16 17

Direkt +41 31 305 43 27
Email [EMAIL PROTECTED]

http://www.itserve.ch

Reply via email to