What are the MessageLogger{In|Out}bound doing ?
Can you try to change your route like this to see if the error goes out?
<camel:route>
<camel:from
uri="cxf:bean:serviceGroups?dataFormat=PAYLOAD&synchronous=false"/>
<camel:to
uri="cxf:bean:targetGroups?dataFormat=PAYLOAD&synchronous=true"/>
</camel:route>
On 7/19/11 6:20 PM, James Talbut wrote:
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
--
Willem
----------------------------------
FuseSource
Web: http://www.fusesource.com
Blog: http://willemjiang.blogspot.com (English)
http://jnn.javaeye.com (Chinese)
Twitter: willemjiang
Weibo: willemjiang