Willem, I'm afraid I can't give you the actual WSDL and URLs (they're from a third party), but I don't think they'll make a difference, they just return a soap:Fault.
The route (and associated config) is: <bean id="traceHandler" class="com.groupgti.routemaster.trace.test.RouteMasterLoggingTraceHandler" xmlns:cxf="http://camel.apache.org/schema/cxf"/> <bean id="soapFaultConverter" class="com.groupgti.routemaster.soapFaultConverter.SoapFaultConverter" xmlns:cxf="http://camel.apache.org/schema/cxf"/> <bean id="tracer" class="org.apache.camel.processor.interceptor.Tracer"> <property name="traceHandler" ref="traceHandler"/> <property name="enabled" value="true"/> <property name="traceOutExchanges" value="true"/> <property name="logLevel" value="OFF"/> </bean> <bean id="cxfInboundLoggingInterceptor" class="com.groupgti.routemaster.cxf.interceptors.test.MessageLoggerInbound"/> <bean id="cxfOutboundLoggingInterceptor" class="com.groupgti.routemaster.cxf.interceptors.test.MessageLoggerOutbound"/> <cxf:bus> <cxf:inInterceptors> <ref bean="cxfInboundLoggingInterceptor"/> </cxf:inInterceptors> <cxf:outInterceptors> <ref bean="cxfOutboundLoggingInterceptor"/> </cxf:outInterceptors> <cxf:inFaultInterceptors> <ref bean="cxfInboundLoggingInterceptor"/> </cxf:inFaultInterceptors> <cxf:outFaultInterceptors> <ref bean="cxfOutboundLoggingInterceptor"/> </cxf:outFaultInterceptors> </cxf:bus> <camel-cxf:cxfEndpoint xmlns:ns="http://schemas.datacontract.org/..." id="targetGroups" address="https://remotehost/..." wsdlURL="http://..." serviceName="ns:Groups" endpointName="ns:GroupsSoap" serviceClass="GroupsSoap"/> <camel-cxf:cxfEndpoint xmlns:ns="http://schemas.datacontract.org/.." id="serviceGroups" address="http://localhost:9000/..." wsdlURL="http://..." serviceName="ns:Groups" endpointName="ns:GroupsSoap"/> <camel:camelContext id="sampleHashCamelContext"> <camel:route> <camel:from uri="cxf:bean:serviceGroups?dataFormat=PAYLOAD&synchronous=false"/> <camel:to uri="cxf:bean:targetGroups?dataFormat=PAYLOAD&synchronous=false"/> </camel:route> </camel:camelContext> Changing the dataFormat doesn't seem to make any difference. The "synchronous=false" was added just to see if I could make it hit the problem under the debugger, and it does hit it there now. It looks like the Camel TraceHandler is being called before the CXF interceptor, but at this stage I can't work out how that happens. Thanks. Jim On Tue, Jul 19, 2011 at 06:04:16PM +0800, Willem Jiang wrote: > Can you post your route, or submit a simple test case to show the error ? > It look like a time issue of CXF endpoint which is working in async > module by default. But I cannot tell more just by looking up the > description that you gave in the mail. > > > > On 7/19/11 4:43 PM, James Talbut wrote: > > Hi, > > > > I'm using a combination of a Camel TraceHandler and a CXF interceptor to > > capture on-the-wire messages and log them with the Camel message. > > In normal use this all works, but when I have an error the Camel > > TraceHandler isn't being called (the rest of the route is picking up the > > error correctly, it's just the > > tracing that isn't working). > > > > When I run under the debugger everything works as expected. > > When I add synchronous=true to the CXF endpoints everything works as > > expected. > > > > Anyone got any ideas or suggestions for where I should look? > > > > This is with Camel 2.7.1, running on Windows. > > > > Thanks. > > > > Jim > > > > > -- > Willem > ---------------------------------- > FuseSource > Web: http://www.fusesource.com > Blog: http://willemjiang.blogspot.com (English) > http://jnn.javaeye.com (Chinese) > Twitter: willemjiang > Weibo: willemjiang