Hi guys, I've got the following scenario. I want to receive a HTTP Message, put the received message into a queue, wait for response and give the response back as HTTP response.
My spring.xml looks like that: <!-- define INBOUND interface of the router --> <cxf:cxfEndpoint id="RouterIn" address="..." serviceClass="..." > </cxf:cxfEndpoint> <!-- define OUTBOUND interface of the router --> <cxf:cxfEndpoint id="RouterOut" wsdlURL="mywsdl.wsdl" endpointName="myPort" serviceName="myService" serviceClass="..." </cxf:cxfEndpoint> <!-- Define the route to the VR Infoforum service --> <camelContext id="camel" xmlns="http://activemq.apache.org/camel/schema/spring"> <route errorHandlerRef="myDeadLetterErrorHandler"> <from uri="cxf:bean:RouterIn" /> <to uri="cxf:bean:RouterOut" /> </route> </camelContext> <!-- error handling --> <bean id="myDeadLetterErrorHandler" class="org.apache.camel.builder.DeadLetterChannelBuilder"> <!-- define dead letter endpoint for messages that cannot be routed --> <!-- property name="defaultDeadLetterEndpointUri" value"TODO"/ -- > <!-- reference the redelivery policy to use --> <property name="redeliveryPolicy" ref="myRedeliveryPolicyConfig"/> </bean> <!-- here we set the redelivery settings --> <bean id="myRedeliveryPolicyConfig" class="org.apache.camel.processor.RedeliveryPolicy"> <!-- try redelivery at most 0 times, after that the exchange is dead --> <property name="maximumRedeliveries" value="0"/> </bean> In the wsdl File, the JMS definitions are made whose values are resolved using a JNDI file: <!-- Definition der Service-Implementierung mit Bindung und Adresse --> <wsdl:service name="myService"> <wsdl:port name="myPort" binding="...."> <jms:address jndiDestinationName="OutQueue" jndiReplyDestinationName="InQueue" jndiConnectionFactoryName="QueueConFac" destinationStyle="queue"> <jms:JMSNamingProperty value="com.sun.jndi.fscontext.RefFSContextFactory" name="java.naming.factory.initial" /> <jms:JMSNamingProperty value="file:." name="java.naming.provider.url" /> </jms:address> </wsdl:port> </wsdl:service> The router is deployed well into a spring container. But when I send a message to the inbound interface, I _immediatly_ get a timeout exception back. Here is what the log looks like: FINE: Payload to be sent out is :[<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns1:gibDokumenteOperation xmlns:ns1="http://vrs-schema.genoip.de/VRInfoForumDokumente"><ns3:gibDokumente xmlns:ns2="http://vrs-schema.genoip.de/VRInfoForumDokumente/uebernehmeDokumente" xmlns:ns3="http://vrs-schema.genoip.de/VRInfoForumDokumente/gibDokumente" xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns5="http://www.genoip.de/protocol"><Organisation>?</Organisation><Optionen><Filter><DokumentID>?</DokumentID></Filter><VersandSynchron>true</VersandSynchron><DokumenteMitliefern>true</DokumenteMitliefern><AnhangMitliefern>true</AnhangMitliefern></Optionen></ns3:gibDokumente></ns1:gibDokumenteOperation></soap:Body></soap:Envelope>] Jan 20, 2009 11:50:27 AM org.apache.cxf.transport.jms.JMSConduit sendExchange FINE: JMSConduit send message . . . INFO: Interceptor has thrown exception, unwinding now java.lang.RuntimeException: Timeout receiving message with correlationId dfrseai100_xn08693_Thread[qtp0-0 - /CamelContext/VRInfoForumRouter,5,main]1232448628836 at org.apache.cxf.transport.jms.JMSConduit.sendExchange(JMSConduit.java:145) at org.apache.cxf.transport.jms.JMSOutputStream.doClose(JMSOutputStream.java:56) at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:167) at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66) at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:466) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:308) at org.apache.camel.component.cxf.CxfProducer.invokeClient(CxfProducer.java:284) at org.apache.camel.component.cxf.CxfProducer.process(CxfProducer.java:192) at org.apache.camel.component.cxf.CxfProducer.process(CxfProducer.java:165) at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:43) at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:75) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68) at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:173) at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:94) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:52) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:66) at org.apache.camel.component.cxf.CamelInvoker.invoke(CamelInvoker.java:178) at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:56) at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:92) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78) at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:278) at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:252) at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:757) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:320) How can I configure the timeout behavior ? Feasible would be something like "wait for XXX seconds, after that put the message to the dead letter error handler". Or is there something I do fundamentally wrong ? I'm using Artix 5.5 with camel 1.5.1.0. Many thanks in advance, Mario -- View this message in context: http://www.nabble.com/timeout-exception-when-pushing-a-message-to-a-JMS-Queue-tp21562561s22882p21562561.html Sent from the Camel - Users mailing list archive at Nabble.com.