camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bdeweer <bertrand.dew...@gmail.com>
Subject synchrone and asynchrone question
Date Tue, 10 Jan 2017 10:22:59 GMT
Hello,

Today I encounter a strange situation with my project so could you please
explain what's the difference between :

<wireTap uri="vm:savePayload" /> (asynchrone to asynchrone component)
 
and

<to uri="vm:savePayload" /> (synchrone to asynchrone component)

and 

<wireTap uri="direct-vm:savePayload" /> (asynchrone to synchrone component)

As the name suggests, I need to save the payload of my route. A dedicated
bundle has this responsability.

When a route starts with <from uri="direct:ws2jms"> everything is ok with
any of the three above solution.

But when a route starts with <from uri="vm:jms2ws">

I strangely noticed that after the call to the instruction <to
uri="vm:savePayload" /> I m not able to retrieve properties from my .cfg
file with this instruction 

exchange.getContext().resolvePropertyPlaceholders("{{http.port}} in a bean

I got an IllegalArgumentException with this stacktrace : 

Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------
java.lang.IllegalArgumentException: Property with key [http.port] not found
in properties from text: {{http.port}}
        at
org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.getPropertyValue(DefaultPropertiesParser.java:268)
        at
org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.readProperty(DefaultPropertiesParser.java:154)
        at
org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.doParse(DefaultPropertiesParser.java:113)
        at
org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.parse(DefaultPropertiesParser.java:97)
        at
org.apache.camel.component.properties.DefaultPropertiesParser.parseUri(DefaultPropertiesParser.java:62)
        at
org.apache.camel.component.properties.PropertiesComponent.parseUri(PropertiesComponent.java:209)
        at
org.apache.camel.component.properties.PropertiesComponent.parseUri(PropertiesComponent.java:160)
        at
org.apache.camel.impl.DefaultCamelContext.resolvePropertyPlaceholders(DefaultCamelContext.java:2348)
        at
com.oxit.flow.manager.TraceGeneratorManager.setTrace(TraceGeneratorManager.java:47)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)[:1.8.0_65]
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_65]
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_65]
        at java.lang.reflect.Method.invoke(Method.java:497)[:1.8.0_65]
        at
org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:458)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:289)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:262)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:178)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:542)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.processor.Pipeline.process(Pipeline.java:120)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.processor.Pipeline.process(Pipeline.java:83)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:97)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.processor.OnCompletionProcessor.doProcess(OnCompletionProcessor.java:151)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.processor.OnCompletionProcessor$OnCompletionSynchronizationAfterConsumer.onComplete(OnCompletionProcessor.java:248)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.util.UnitOfWorkHelper.doneSynchronizations(UnitOfWorkHelper.java:104)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.impl.DefaultUnitOfWork.done(DefaultUnitOfWork.java:230)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.util.UnitOfWorkHelper.doneUow(UnitOfWorkHelper.java:65)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.processor.CamelInternalProcessor$UnitOfWorkProcessorAdvice.after(CamelInternalProcessor.java:674)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.processor.CamelInternalProcessor$UnitOfWorkProcessorAdvice.after(CamelInternalProcessor.java:629)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.processor.CamelInternalProcessor$InternalCallback.done(CamelInternalProcessor.java:246)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.processor.CamelInternalProcessor$InternalCallback.done(CamelInternalProcessor.java:257)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:573)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.component.seda.SedaConsumer.sendToConsumers(SedaConsumer.java:298)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.component.seda.SedaConsumer.doRun(SedaConsumer.java:207)[175:org.apache.camel.camel-core:2.18.1]
        at
org.apache.camel.component.seda.SedaConsumer.run(SedaConsumer.java:154)[175:org.apache.camel.camel-core:2.18.1]
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_65]
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_65]
        at java.lang.Thread.run(Thread.java:745)[:1.8.0_65]


I precise that I don't encounter this situation when my route starts with
<from uri="direct:ws2jms">


So the solution to me is to use the wireTap component. But why the
IllegalArgumentException when the route starts with a direct component? Is
it related to the Exception ?

What's the difference between wireTap uri="vm:blabla" /> (double asynchrone)
and <wireTap uri="direct-vm:blabla"> (simple asynchrone) ?

Thank you!!



Thank you







--
View this message in context: http://camel.465427.n5.nabble.com/synchrone-and-asynchrone-question-tp5792346.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Mime
View raw message