Hello cxf users,
I have a soap webservice, which is the entry point for a route, and from
that route a second route is called, where a long processing operation
is executed (40 seconds).
If i call the second route with <to
uri="seda:IN_ChildRoute?timeout=1000000">, then the webservice execution
takes 40 seconds, and the proper response is returned.
If i call the second route with <to
uri="activemq:queue:IN_ChildRoute?requestTimeout=1000000">, then the
webservice execution takes 30 seconds, returns an "Fault occurred while
processing." error response. The route continues it's execution
normally, so is not stopped.
Also it seems that when using activeMQ, CXF throws an error after 30
seconds.
I cannot use seda, as i have multiple processes from different contexts,
on different servers running, so i need to use activeMQ.
Thank you.
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:camel="http://camel.apache.org/schema/spring"
xmlns:cxf="http://camel.apache.org/schema/cxf"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd">
<bean id="toActivemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
<property name="connectionFactory">
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://localhost:61616" />
<property name="userName" value="admin"/>
<property name="password" value="admin"/>
</bean>
</property>
</bean>
<camel:camelContext id="WSTimeoutTest" streamCache="true" allowUseOriginalMessage="false">
<camel:route id="WSTimeout">
<!--route starts from the cxf webservice in POJO mode-->
<camel:from uri="cxf:bean:GlobusTravel"/>
<camel:to uri="toActivemq:queue:IN_ChildRoute?requestTimeout=6000000" />
<!--<camel:to uri="seda:IN_ChildRoute?timeout=6000000"/>-->
</camel:route>
<camel:route id="ChildRoute" trace="true" streamCache="false" >
<camel:from uri="toActivemq:queue:IN_ChildRoute"/>
<!--<camel:from uri="seda:IN_ChildRoute"/>-->
<camel:to uri="seda:makeCall?timeout=7000000"/>
</camel:route>
<camel:route id="Call">
<camel:from uri="seda:makeCall"/>
<camel:delay>
<camel:constant>40000</camel:constant>
</camel:delay>
</camel:route>
</camel:camelContext>
</beans>2016-06-14 09:31:55,249 | DEBUG | ss/WSTimeoutTest | PhaseInterceptorChain
| 52 - org.apache.cxf.cxf-core - 3.1.4 | Invoking handleMessage on
interceptor org.apache.cxf.interceptor.ServiceInvokerInterceptor@574ac561
2016-06-14 09:31:55,249 | DEBUG | ss/WSTimeoutTest | PhaseInterceptorChain
| 52 - org.apache.cxf.cxf-core - 3.1.4 | Invoking handleFault on
interceptor org.apache.cxf.interceptor.ServiceInvokerInterceptor@574ac561
2016-06-14 09:31:55,249 | DEBUG | ss/WSTimeoutTest | PhaseInterceptorChain
| 52 - org.apache.cxf.cxf-core - 3.1.4 | Invoking handleFault on
interceptor org.apache.cxf.ws.mex.MEXInInterceptor@4608f8af
2016-06-14 09:31:55,249 | DEBUG | ss/WSTimeoutTest | PhaseInterceptorChain
| 52 - org.apache.cxf.cxf-core - 3.1.4 | Invoking handleFault on
interceptor org.apache.cxf.javascript.JavascriptGetInterceptor@2b5cf151
2016-06-14 09:31:55,249 | DEBUG | ss/WSTimeoutTest | PhaseInterceptorChain
| 52 - org.apache.cxf.cxf-core - 3.1.4 | Invoking handleFault on
interceptor
org.apache.camel.component.cxf.interceptors.RawMessageWSDLGetInterceptor@6b55c722
2016-06-14 09:31:55,249 | DEBUG | ss/WSTimeoutTest | PhaseInterceptorChain
| 52 - org.apache.cxf.cxf-core - 3.1.4 | Invoking handleFault on
interceptor org.apache.cxf.transport.https.CertConstraintsInterceptor@40a2e8a6
2016-06-14 09:31:55,249 | DEBUG | ss/WSTimeoutTest | PhaseInterceptorChain
| 52 - org.apache.cxf.cxf-core - 3.1.4 | Invoking handleFault on
interceptor org.apache.cxf.ws.policy.PolicyInInterceptor@5671c31a
2016-06-14 09:31:55,249 | WARN | ss/WSTimeoutTest | PhaseInterceptorChain
| 52 - org.apache.cxf.cxf-core - 3.1.4 | Interceptor for
{http://www.globustravel.com/Services}GlobusTravel has thrown exception,
unwinding now
java.lang.NullPointerException
at
org.apache.camel.impl.DefaultConsumer.doneUoW(DefaultConsumer.java:103)[40:org.apache.camel.camel-core:2.16.1]
at
org.apache.camel.component.cxf.CxfConsumer$1.asyncInvoke(CxfConsumer.java:112)[41:org.apache.camel.camel-cxf:2.16.1]
at
org.apache.camel.component.cxf.CxfConsumer$1.invoke(CxfConsumer.java:75)[41:org.apache.camel.camel-cxf:2.16.1]
at
org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59)[52:org.apache.cxf.cxf-core:3.1.4]
at
org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96)[52:org.apache.cxf.cxf-core:3.1.4]
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)[52:org.apache.cxf.cxf-core:3.1.4]
at
org.apache.cxf.phase.PhaseInterceptorChain.resume(PhaseInterceptorChain.java:278)[52:org.apache.cxf.cxf-core:3.1.4]
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)[52:org.apache.cxf.cxf-core:3.1.4]
at
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:251)[77:org.apache.cxf.cxf-rt-transports-http:3.1.4]
at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)[77:org.apache.cxf.cxf-rt-transports-http:3.1.4]
at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)[77:org.apache.cxf.cxf-rt-transports-http:3.1.4]
at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)[77:org.apache.cxf.cxf-rt-transports-http:3.1.4]
at
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:180)[77:org.apache.cxf.cxf-rt-transports-http:3.1.4]
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:293)[77:org.apache.cxf.cxf-rt-transports-http:3.1.4]
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:212)[77:org.apache.cxf.cxf-rt-transports-http:3.1.4]
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:707)[16:javax.servlet-api:3.1.0]
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:268)[77:org.apache.cxf.cxf-rt-transports-http:3.1.4]
at
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)[173:org.eclipse.jetty.servlet:9.2.14.v20151106]
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)[173:org.eclipse.jetty.servlet:9.2.14.v20151106]
at
org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:70)[191:org.ops4j.pax.web.pax-web-jetty:4.2.4]
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)[172:org.eclipse.jetty.server:9.2.14.v20151106]
at
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)[171:org.eclipse.jetty.security:9.2.14.v20151106]
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)[172:org.eclipse.jetty.server:9.2.14.v20151106]
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)[172:org.eclipse.jetty.server:9.2.14.v20151106]
at
org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:271)[191:org.ops4j.pax.web.pax-web-jetty:4.2.4]
at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)[173:org.eclipse.jetty.servlet:9.2.14.v20151106]
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)[172:org.eclipse.jetty.server:9.2.14.v20151106]
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)[172:org.eclipse.jetty.server:9.2.14.v20151106]
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)[172:org.eclipse.jetty.server:9.2.14.v20151106]
at
org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80)[191:org.ops4j.pax.web.pax-web-jetty:4.2.4]
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)[172:org.eclipse.jetty.server:9.2.14.v20151106]
at
org.eclipse.jetty.server.Server.handleAsync(Server.java:545)[172:org.eclipse.jetty.server:9.2.14.v20151106]
at
org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:318)[172:org.eclipse.jetty.server:9.2.14.v20151106]
at
org.eclipse.jetty.server.HttpChannel.run(HttpChannel.java:262)[172:org.eclipse.jetty.server:9.2.14.v20151106]
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)[175:org.eclipse.jetty.util:9.2.14.v20151106]
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)[175:org.eclipse.jetty.util:9.2.14.v20151106]
at java.lang.Thread.run(Thread.java:745)[:1.8.0_45]
2016-06-14 09:31:55,250 | DEBUG | ss/WSTimeoutTest | PhaseInterceptorChain
| 52 - org.apache.cxf.cxf-core - 3.1.4 | Adding interceptor
org.apache.cxf.ws.policy.ServerPolicyOutFaultInterceptor@15d315dd to phase setup
2016-06-14 09:31:55,250 | DEBUG | ss/WSTimeoutTest | PhaseInterceptorChain
| 52 - org.apache.cxf.cxf-core - 3.1.4 | Adding interceptor
org.apache.cxf.jaxws.interceptors.WebFaultOutInterceptor@661e5f3a to phase
pre-protocol
2016-06-14 09:31:55,250 | DEBUG | ss/WSTimeoutTest | PhaseInterceptorChain
| 52 - org.apache.cxf.cxf-core - 3.1.4 | Adding interceptor
org.apache.cxf.interceptor.MessageSenderInterceptor@792b688c to phase
prepare-send
2016-06-14 09:31:55,250 | DEBUG | ss/WSTimeoutTest | PhaseInterceptorChain
| 52 - org.apache.cxf.cxf-core - 3.1.4 | Adding interceptor
org.apache.cxf.interceptor.StaxOutInterceptor@40755064 to phase pre-stream
2016-06-14 09:31:55,250 | DEBUG | ss/WSTimeoutTest | PhaseInterceptorChain
| 52 - org.apache.cxf.cxf-core - 3.1.4 | Adding interceptor
org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor@4f1cc039 to phase
write
2016-06-14 09:31:55,250 | DEBUG | ss/WSTimeoutTest | PhaseInterceptorChain
| 52 - org.apache.cxf.cxf-core - 3.1.4 | Adding interceptor
org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor@5befa16f to phase
write
2016-06-14 09:31:55,250 | DEBUG | ss/WSTimeoutTest | PhaseInterceptorChain
| 52 - org.apache.cxf.cxf-core - 3.1.4 | Adding interceptor
org.apache.cxf.binding.soap.interceptor.SoapHeaderOutFilterInterceptor@6f82cc28
to phase pre-logical
2016-06-14 09:31:55,250 | DEBUG | ss/WSTimeoutTest | PhaseInterceptorChain
| 52 - org.apache.cxf.cxf-core - 3.1.4 | Adding interceptor
org.apache.cxf.binding.soap.interceptor.Soap11FaultOutInterceptor@7922cd96 to
phase prepare-send
2016-06-14 09:31:55,250 | DEBUG | ss/WSTimeoutTest | PhaseInterceptorChain
| 52 - org.apache.cxf.cxf-core - 3.1.4 | Chain
org.apache.cxf.phase.PhaseInterceptorChain@133e54a6 was created. Current flow:
setup [ServerPolicyOutFaultInterceptor]
pre-logical [SoapHeaderOutFilterInterceptor]
prepare-send [MessageSenderInterceptor, Soap11FaultOutInterceptor]
pre-stream [StaxOutInterceptor]
pre-protocol [WebFaultOutInterceptor]