Hi Charles,
It looks like your csv bean's parameter is IncidentService.
Camel was trying to covert the unmarshalled message body into the
IncidentService.
Can you tell me the propose of csv bean and show me the code of Csv?
Willem
cmoulliard wrote:
> Hi,
>
> I have created a bean where I inject a dependency coming from an osgi
> service like this :
>
> <bean id="csv"
> class="org.apache.camel.example.reportincident.beans.Csv">
> <property name="incidentService">
> <osgi:reference
> interface="org.apache.camel.example.reportincident.service.IncidentService"/>
> </property>
> </bean>
>
> The bean is used in a camel route :
>
> <!-- File route -->
> <camel:route>
> <camel:from
> uri="file://d:/temp/data/?move=d:/temp/done/${file:name}" />
> <camel:unmarshal ref="bindyDataformat" />
> <camel:to uri="bean:csv" />
> <camel:to uri="queuingservice:queue:in" />
> </camel:route>
>
> <!-- -->
> <camel:route>
> <camel:from uri="queuingservice:queue:in" />
> <camel:marshal ref="bindyDataformat" />
> <camel:to uri="file://d:/temp/data/queue" />
> </camel:route>
>
> But when I put a file in the directory of temp/data, I receive hundreds of
> lines like this. It seems that camel would like to convert
> org.apache.camel.component.file.GenericFileMessage to the required type:
> org.apache.camel.example.reportincident.service.IncidentService !!! This is
> completely stupid.
>
>
> 16:41:09,929 | ERROR | ompon...@1504a84 | DeadLetterChannel |
> rg.apache.camel.processor.Logger 207 | Failed delivery for exchangeId:
> ID-dell-charles-1546-1237563220757-0-6. On delivery attempt: 1 caught:
> org.apache.camel.NoTypeConversionAvailableException: No type converter
> available to convert from type:
> org.apache.camel.component.file.GenericFileMessage to the required type:
> org.apache.camel.example.reportincident.service.IncidentService with value
> GenericFileMessage: GenericFile[d:\temp\data\csv_small.txt]
> org.apache.camel.NoTypeConversionAvailableException: No type converter
> available to convert from type:
> org.apache.camel.component.file.GenericFileMessage to the required type:
> org.apache.camel.example.reportincident.service.IncidentService with value
> GenericFileMessage: GenericFile[d:\temp\data\csv_small.txt]
> at
> org.apache.camel.impl.converter.DefaultTypeConverter.doConvertTo(DefaultTypeConverter.java:156)
> at
> org.apache.camel.impl.converter.DefaultTypeConverter.convertTo(DefaultTypeConverter.java:99)
> at
> org.apache.camel.impl.converter.DefaultTypeConverter.convertTo(DefaultTypeConverter.java:95)
> at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:86)
> at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:52)
> at
> org.apache.camel.builder.ExpressionBuilder$13.evaluate(ExpressionBuilder.java:319)
> at
> org.apache.camel.impl.ExpressionSupport.evaluate(ExpressionSupport.java:37)
> at
> org.apache.camel.component.bean.MethodInfo$2.evaluate(MethodInfo.java:187)
> at
> org.apache.camel.component.bean.MethodInfo.createMethodInvocation(MethodInfo.java:78)
> at
> org.apache.camel.component.bean.BeanInfo.createInvocation(BeanInfo.java:136)
> at
> org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:109)
> at
> org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:95)
> at
> org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:65)
> at
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:69)
> at
> org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:49)
> at
> org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:78)
> at
> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:115)
> at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:80)
> at
> org.apache.camel.processor.interceptor.StreamCachingInterceptor.proceed(StreamCachingInterceptor.java:88)
> at
> org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:83)
> at
> org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:210)
> at
> org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:145)
> at org.apache.camel.processor.Pipeline.process(Pipeline.java:115)
> at org.apache.camel.processor.Pipeline.process(Pipeline.java:89)
> at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41)
> at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:55)
> at
> org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:49)
> at
> org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:78)
> at
> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:115)
> at
> org.apache.camel.processor.interceptor.StreamCachingInterceptor.proceed(StreamCachingInterceptor.java:91)
> at
> org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:83)
> at
> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:52)
> at
> org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:157)
> at
> org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:98)
> at
> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:66)
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> at
> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:619)
>
> Regards,
>
>
> -----
> Charles Moulliard
> SOA Architect
>
> My Blog : http://cmoulliard.blogspot.com/ http://cmoulliard.blogspot.com/