You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Leandro Franchi <le...@gmail.com> on 2012/11/06 19:27:47 UTC
File do ActiveMQ
Hi,
I've a route to read files, convert the body to string and send to
ActiveMQ. It's ok, but somentimes, I've got these error:
06/11/2012 16:19:19.174 [Camel (mirCamel) thread #21 - file:/tmp] ERROR
org.apache.camel.processor.FatalFallbackErrorHandler:55 - \--> New
exception on exchangeId: ID-alxredmircol01-51775-1352225432241-0-14234
org.apache.camel.TypeConversionException: Error during type conversion
from type: org.apache.camel.component.file.GenericFile to the required
type: byte[] with value GenericFile[/mnt/sox/HST/20121030_174713_N.txt]
due java.lang.IllegalArgumentException: reader must be specified
at
org.apache.camel.impl.converter.BaseTypeConverterRegistry.convertTo(BaseTypeConverterRegistry.java:126)
at
org.apache.camel.component.jms.JmsBinding.createJmsMessageForType(JmsBinding.java:534)
at
org.apache.camel.component.jms.JmsBinding.createJmsMessage(JmsBinding.java:464)
at
org.apache.camel.component.jms.JmsBinding.makeJmsMessage(JmsBinding.java:285)
at
org.apache.camel.component.jms.JmsProducer$2.createMessage(JmsProducer.java:266)
at
org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.doSendToDestination(JmsConfiguration.java:214)
at
org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.access$100(JmsConfiguration.java:157)
at
org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate$3.doInJms(JmsConfiguration.java:191)
at
org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:466)
at
org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.send(JmsConfiguration.java:188)
at
org.apache.camel.component.jms.JmsProducer.doSend(JmsProducer.java:398)
at
org.apache.camel.component.jms.JmsProducer.processInOnly(JmsProducer.java:352)
at
org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:132)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:120)
at
org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:292)
at
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:115)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
at
org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
at
org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:117)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.FatalFallbackErrorHandler.processNext(FatalFallbackErrorHandler.java:42)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.RedeliveryErrorHandler.deliverToFailureProcessor(RedeliveryErrorHandler.java:759)
at
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:273)
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
at
org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
at
org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:117)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at
org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)
at
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)
at
org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
at
org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:336)
at
br.com.flexvision.mir.collector.component.sw.file.FileSwitchConsumer.processExchange(FileSwitchConsumer.java:26)
at
org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:189)
at
org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:155)
at
org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:139)
at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:91)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at
java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.apache.camel.RuntimeCamelException:
java.lang.IllegalArgumentException: reader must be specified
at
org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1280)
at
org.apache.camel.util.ObjectHelper.invokeMethod(ObjectHelper.java:936)
at
org.apache.camel.impl.converter.StaticMethodTypeConverter.convertTo(StaticMethodTypeConverter.java:47)
at
org.apache.camel.component.file.GenericFileConverter.convertTo(GenericFileConverter.java:93)
at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
org.apache.camel.util.ObjectHelper.invokeMethod(ObjectHelper.java:932)
at
org.apache.camel.impl.converter.StaticMethodFallbackTypeConverter.convertTo(StaticMethodFallbackTypeConverter.java:50)
at
org.apache.camel.impl.converter.BaseTypeConverterRegistry.doConvertTo(BaseTypeConverterRegistry.java:289)
at
org.apache.camel.impl.converter.BaseTypeConverterRegistry.convertTo(BaseTypeConverterRegistry.java:111)
... 70 more
Caused by: java.lang.IllegalArgumentException: reader must be specified
at org.apache.camel.util.ObjectHelper.notNull(ObjectHelper.java:290)
at org.apache.camel.util.IOHelper.buffered(IOHelper.java:117)
at
org.apache.camel.converter.IOConverter.toByteArray(IOConverter.java:261)
at sun.reflect.GeneratedMethodAccessor230.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
org.apache.camel.util.ObjectHelper.invokeMethod(ObjectHelper.java:932)
... 79 more
Anyone have idea?
Thanks
Leandro Franchi
Re: File do ActiveMQ
Posted by Leandro Franchi <le...@gmail.com>.
Hi Christian,
You're right!
I was using Java Wrapper do start/stop the java program as a linux
service. Sometimes the wrapper starts two program instances, I don't
know why but on this time that error occurs because one instance read
and delete the file at the same time the another instance are reading
the file.
I'll have to understand why I've 2 instances running, and how to
prevent this situation.
Thanks so much Christian!
I hope the best
Leandro Franchi
On 12/11/12, Christian Müller <ch...@gmail.com> wrote:
> I think I found the issue:
>
> org.apache.camel.component.file.GenericFileConverter:
>
> 88 Reader reader = genericFileToReader(file, exchange);
> 89 // we dont want a reader back, so use the type converter registry to
> find a suitable converter
> 90 TypeConverter readerTc = registry.lookup(type, Reader.class);
> 91 if (readerTc != null) {
> 92 // use the reader based type converter
> 93 return readerTc.convertTo(type, exchange, reader);
> 94 }
>
> If you have a look into the "genericFileToReader()" method you can see that
> it returns null, if the file doesn't exist. In this case, in line 93 the
> type converter (IOConverter in this case) is called which will fail
>
> IOConverter:
> 259 @Converter
> 260 public static byte[] toByteArray(Reader reader, Exchange exchange)
> throws IOException {
> 261 return toByteArray(IOHelper.buffered(reader), exchange);
> 262 }
>
> IOHelper
> 116 public static BufferedReader buffered(Reader reader) {
> 117 ObjectHelper.notNull(reader, "reader");
> 118 return (reader instanceof BufferedReader) ?
> (BufferedReader)reader : new BufferedReader(reader);
> 119 }
>
> Is it possible the file doesn't exist anymore if Camel tries to read it?
>
> Best,
> Christian
>
> On Wed, Nov 7, 2012 at 11:15 AM, Leandro Franchi
> <le...@gmail.com>wrote:
>
>> switchFileFrontendCounterProce**ssor
>>
>
--
*Leandro Franchi*
http://www.frango10.com
Re: File do ActiveMQ
Posted by Christian Müller <ch...@gmail.com>.
I think I found the issue:
org.apache.camel.component.file.GenericFileConverter:
88 Reader reader = genericFileToReader(file, exchange);
89 // we dont want a reader back, so use the type converter registry to
find a suitable converter
90 TypeConverter readerTc = registry.lookup(type, Reader.class);
91 if (readerTc != null) {
92 // use the reader based type converter
93 return readerTc.convertTo(type, exchange, reader);
94 }
If you have a look into the "genericFileToReader()" method you can see that
it returns null, if the file doesn't exist. In this case, in line 93 the
type converter (IOConverter in this case) is called which will fail
IOConverter:
259 @Converter
260 public static byte[] toByteArray(Reader reader, Exchange exchange)
throws IOException {
261 return toByteArray(IOHelper.buffered(reader), exchange);
262 }
IOHelper
116 public static BufferedReader buffered(Reader reader) {
117 ObjectHelper.notNull(reader, "reader");
118 return (reader instanceof BufferedReader) ?
(BufferedReader)reader : new BufferedReader(reader);
119 }
Is it possible the file doesn't exist anymore if Camel tries to read it?
Best,
Christian
On Wed, Nov 7, 2012 at 11:15 AM, Leandro Franchi
<le...@gmail.com>wrote:
> switchFileFrontendCounterProce**ssor
>
Re: File do ActiveMQ
Posted by Leandro Franchi <le...@gmail.com>.
Hi Christian, first of all, thanks for reply.
I've 160 routes like rt-* (see below). These routes, polling files in
directories and send each file to seda endpoint. The seda endpoint
process messages and send a processed message to ActiveMQ. I'm using
ActiveMQ because these process are running at another computer.
I can't use recursive property for file endpoint because I've a lot of
business rules to verify depends on complete file path, etc.
I'm using Apache Camel 2.10.2 ans ActiveMQ 5.7.
Following the routes:
<!-- Retrive files from directory 1, server A -->
<route id="rt-147" errorHandlerRef="myErrorHandler"
shutdownRoute="Defer" autoStartup="true">
<from
uri="file:/mnt/serverA/1?charset=iso-8859-1&readLock=changed&readLockCheckInterval=200&readLockMinLength=0&delay=500&maxMessagesPerPoll=100&sortBy=${file:modified}"
/>
<onException useOriginalMessage="true">
<exception>java.text.ParseException</exception>
<exception>java.lang.ArrayIndexOutOfBoundsException</exception>
<redeliveryPolicy maximumRedeliveries="0"/>
<handled><constant>true</constant></handled>
<to uri="activemq:queue:alarm" />
</onException>
<choice>
<when>
<simple>${file:name} contains '_FILE1.txt'</simple>
<to uri="seda:fe_FILE1" />
</when>
<when>
<simple>${file:name} contains '_FILE2.txt'</simple>
<to uri="seda:fe_FILE2" />
</when>
</choice>
</route>
<!-- Retrive files from directory 2, server A -->
<route id="rt-148" errorHandlerRef="myErrorHandler"
shutdownRoute="Defer" autoStartup="true">
<from
uri="file:/serverA/2?charset=iso-8859-1&readLock=changed&readLockCheckInterval=200&readLockMinLength=0&delay=500&maxMessagesPerPoll=100&sortBy=${file:modified}"
/>
<onException useOriginalMessage="true">
<exception>java.text.ParseException</exception>
<exception>java.lang.ArrayIndexOutOfBoundsException</exception>
<redeliveryPolicy maximumRedeliveries="0"/>
<handled><constant>true</constant></handled>
<to uri="activemq:queue:alarm" />
</onException>
<choice>
<when>
<simple>${file:name} contains '_FILE1.txt'</simple>
<to uri="seda:fe_FILE1" />
</when>
<when>
<simple>${file:name} contains '_FILE2.txt'</simple>
<to uri="seda:fe_FILE2" />
</when>
</choice>
</route>
<!-- Retrive files from directory 1, server B -->
<route id="rt-149" errorHandlerRef="myErrorHandler"
shutdownRoute="Defer" autoStartup="true">
<from
uri="file:/serverB/1?charset=iso-8859-1&readLock=changed&readLockCheckInterval=200&readLockMinLength=0&delay=500&maxMessagesPerPoll=100&sortBy=${file:modified}"
/>
<onException useOriginalMessage="true">
<exception>java.text.ParseException</exception>
<exception>java.lang.ArrayIndexOutOfBoundsException</exception>
<redeliveryPolicy maximumRedeliveries="0"/>
<handled><constant>true</constant></handled>
<to uri="activemq:queue:alarm" />
</onException>
<choice>
<when>
<simple>${file:name} contains '_FILE1.txt'</simple>
<to uri="seda:fe_FILE1" />
</when>
<when>
<simple>${file:name} contains '_FILE2.txt'</simple>
<to uri="seda:fe_FILE2" />
</when>
</choice>
</route>
<!-- Processor for files from type 1 -->
<route id="sedaFile1" errorHandlerRef="mirErrorHandler"
shutdownRoute="Defer" autoStartup="true">
<from
uri="seda:fe_FILE1?concurrentConsumers=10&waitForTaskToComplete=Never"
/>
<process ref="switchFileFrontendCounterProcessor" />
<setHeader
headerName="ALARM_TARGET"><constant>F1</constant></setHeader>
<to uri="activemq:queue:alarm" />
</route>
<!-- Processor for files from type 2 -->
<route id="sedaFile2" errorHandlerRef="mirErrorHandler"
shutdownRoute="Defer" autoStartup="true">
<from
uri="seda:fe_FILE2?concurrentConsumers=10&waitForTaskToComplete=Never"
/>
<process ref="switchFileFrontendCounterProcessor" />
<setHeader
headerName="ALARM_TARGET"><constant>F2</constant></setHeader>
<to uri="activemq:queue:alarm" />
</route>
<!-- Queue for process Alarms -->
<route id="file-alarm" errorHandlerRef="mirErrorHandler"
shutdownRoute="Defer" autoStartup="true">
<from uri="activemq:alarm" />
<choice>
<when>
<simple>${headers[ALARM_TARGET]} == "F1"</simple>
<to uri="sql:exec Prc_File1 #, #, #
?dataSourceRef=myDatasource" />
</when>
</choice>
<to uri="bean://alarmEngineBean"/>
</route>
The ActiveMQ configuration is:
<bean id="jmsConnectionFactory"
class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://10.59.133.123:4848" />
</bean>
<bean id="pooledConnectionFactory"
class="org.apache.activemq.pool.PooledConnectionFactory">
<property name="maxConnections" value="10" />
<property name="maximumActive" value="10" />
<property name="connectionFactory" ref="jmsConnectionFactory" />
</bean>
Thanks for all
Leandro Franchi
On 06-11-2012 21:45, Christian Müller wrote:
> Which version do you use?
> Hoe does your route looks like?
>
> Sent from a mobile device
> Am 06.11.2012 19:29 schrieb "Leandro Franchi" <le...@gmail.com>:
>
>> Hi,
>>
>> I've a route to read files, convert the body to string and send to
>> ActiveMQ. It's ok, but somentimes, I've got these error:
>>
>>
>> 06/11/2012 16:19:19.174 [Camel (mirCamel) thread #21 - file:/tmp] ERROR
>> org.apache.camel.processor.**FatalFallbackErrorHandler:55 - \--> New
>> exception on exchangeId: ID-alxredmircol01-51775-**1352225432241-0-14234
>> org.apache.camel.**TypeConversionException: Error during type conversion
>> from type: org.apache.camel.component.**file.GenericFile to the required
>> type: byte[] with value GenericFile[/mnt/sox/HST/**20121030_174713_N.txt]
>> due java.lang.**IllegalArgumentException: reader must be specified
>> at org.apache.camel.impl.**converter.**BaseTypeConverterRegistry.**
>> convertTo(**BaseTypeConverterRegistry.**java:126)
>> at org.apache.camel.component.**jms.JmsBinding.**
>> createJmsMessageForType(**JmsBinding.java:534)
>> at org.apache.camel.component.**jms.JmsBinding.**
>> createJmsMessage(JmsBinding.**java:464)
>> at org.apache.camel.component.**jms.JmsBinding.makeJmsMessage(**
>> JmsBinding.java:285)
>> at org.apache.camel.component.**jms.JmsProducer$2.**
>> createMessage(JmsProducer.**java:266)
>> at org.apache.camel.component.**jms.JmsConfiguration$**
>> CamelJmsTemplate.**doSendToDestination(**JmsConfiguration.java:214)
>> at org.apache.camel.component.**jms.JmsConfiguration$**
>> CamelJmsTemplate.access$100(**JmsConfiguration.java:157)
>> at org.apache.camel.component.**jms.JmsConfiguration$**
>> CamelJmsTemplate$3.doInJms(**JmsConfiguration.java:191)
>> at org.springframework.jms.core.**JmsTemplate.execute(**
>> JmsTemplate.java:466)
>> at org.apache.camel.component.**jms.JmsConfiguration$**
>> CamelJmsTemplate.send(**JmsConfiguration.java:188)
>> at org.apache.camel.component.**jms.JmsProducer.doSend(**
>> JmsProducer.java:398)
>> at org.apache.camel.component.**jms.JmsProducer.processInOnly(**
>> JmsProducer.java:352)
>> at org.apache.camel.component.**jms.JmsProducer.process(**
>> JmsProducer.java:132)
>> at org.apache.camel.util.**AsyncProcessorHelper.process(**
>> AsyncProcessorHelper.java:73)
>> at org.apache.camel.processor.**SendProcessor$2.**doInAsyncProducer(**
>> SendProcessor.java:120)
>> at org.apache.camel.impl.**ProducerCache.**doInAsyncProducer(**
>> ProducerCache.java:292)
>> at org.apache.camel.processor.**SendProcessor.process(**
>> SendProcessor.java:115)
>> at org.apache.camel.util.**AsyncProcessorHelper.process(**
>> AsyncProcessorHelper.java:73)
>> at org.apache.camel.processor.**DelegateAsyncProcessor.**processNext(*
>> *DelegateAsyncProcessor.java:**99)
>> at org.apache.camel.processor.**DelegateAsyncProcessor.**process(**
>> DelegateAsyncProcessor.java:**90)
>> at org.apache.camel.management.**InstrumentationProcessor.**process(**
>> InstrumentationProcessor.java:**73)
>> at org.apache.camel.util.**AsyncProcessorHelper.process(**
>> AsyncProcessorHelper.java:73)
>> at org.apache.camel.processor.**DelegateAsyncProcessor.**processNext(*
>> *DelegateAsyncProcessor.java:**99)
>> at org.apache.camel.processor.**DelegateAsyncProcessor.**process(**
>> DelegateAsyncProcessor.java:**90)
>> at org.apache.camel.processor.**interceptor.TraceInterceptor.**
>> process(TraceInterceptor.java:**91)
>> at org.apache.camel.processor.**interceptor.**
>> StreamCachingInterceptor.**process(**StreamCachingInterceptor.java:**52)
>> at org.apache.camel.processor.**RouteContextProcessor.**processNext(**
>> RouteContextProcessor.java:45)
>> at org.apache.camel.processor.**DelegateAsyncProcessor.**process(**
>> DelegateAsyncProcessor.java:**90)
>> at org.apache.camel.processor.**interceptor.DefaultChannel.**
>> process(DefaultChannel.java:**303)
>> at org.apache.camel.util.**AsyncProcessorHelper.process(**
>> AsyncProcessorHelper.java:73)
>> at org.apache.camel.processor.**Pipeline.process(Pipeline.**java:117)
>> at org.apache.camel.processor.**Pipeline.process(Pipeline.**java:80)
>> at org.apache.camel.util.**AsyncProcessorHelper.process(**
>> AsyncProcessorHelper.java:73)
>> at org.apache.camel.processor.**DelegateAsyncProcessor.**processNext(*
>> *DelegateAsyncProcessor.java:**99)
>> at org.apache.camel.processor.**FatalFallbackErrorHandler.**
>> processNext(**FatalFallbackErrorHandler.**java:42)
>> at org.apache.camel.processor.**DelegateAsyncProcessor.**process(**
>> DelegateAsyncProcessor.java:**90)
>> at org.apache.camel.util.**AsyncProcessorHelper.process(**
>> AsyncProcessorHelper.java:73)
>> at org.apache.camel.processor.**RedeliveryErrorHandler.**
>> deliverToFailureProcessor(**RedeliveryErrorHandler.java:**759)
>> at org.apache.camel.processor.**RedeliveryErrorHandler.**
>> processErrorHandler(**RedeliveryErrorHandler.java:**273)
>> at org.apache.camel.processor.**RedeliveryErrorHandler.**process(**
>> RedeliveryErrorHandler.java:**220)
>> at org.apache.camel.processor.**interceptor.**
>> StreamCachingInterceptor.**process(**StreamCachingInterceptor.java:**52)
>> at org.apache.camel.processor.**RouteContextProcessor.**processNext(**
>> RouteContextProcessor.java:45)
>> at org.apache.camel.processor.**DelegateAsyncProcessor.**process(**
>> DelegateAsyncProcessor.java:**90)
>> at org.apache.camel.processor.**interceptor.DefaultChannel.**
>> process(DefaultChannel.java:**303)
>> at org.apache.camel.util.**AsyncProcessorHelper.process(**
>> AsyncProcessorHelper.java:73)
>> at org.apache.camel.processor.**Pipeline.process(Pipeline.**java:117)
>> at org.apache.camel.processor.**Pipeline.process(Pipeline.**java:80)
>> at org.apache.camel.processor.**RouteContextProcessor.**processNext(**
>> RouteContextProcessor.java:45)
>> at org.apache.camel.processor.**DelegateAsyncProcessor.**process(**
>> DelegateAsyncProcessor.java:**90)
>> at org.apache.camel.processor.**UnitOfWorkProcessor.**processAsync(**
>> UnitOfWorkProcessor.java:150)
>> at org.apache.camel.processor.**UnitOfWorkProcessor.process(**
>> UnitOfWorkProcessor.java:117)
>> at org.apache.camel.processor.**RouteInflightRepositoryProcess**
>> or.processNext(**RouteInflightRepositoryProcess**or.java:48)
>> at org.apache.camel.processor.**DelegateAsyncProcessor.**process(**
>> DelegateAsyncProcessor.java:**90)
>> at org.apache.camel.util.**AsyncProcessorHelper.process(**
>> AsyncProcessorHelper.java:73)
>> at org.apache.camel.processor.**DelegateAsyncProcessor.**processNext(*
>> *DelegateAsyncProcessor.java:**99)
>> at org.apache.camel.processor.**DelegateAsyncProcessor.**process(**
>> DelegateAsyncProcessor.java:**90)
>> at org.apache.camel.management.**InstrumentationProcessor.**process(**
>> InstrumentationProcessor.java:**73)
>> at org.apache.camel.component.**file.GenericFileConsumer.**
>> processExchange(**GenericFileConsumer.java:336)
>> at br.com.flexvision.mir.**collector.component.sw.file.**
>> FileSwitchConsumer.**processExchange(**FileSwitchConsumer.java:26)
>> at org.apache.camel.component.**file.GenericFileConsumer.**
>> processBatch(**GenericFileConsumer.java:189)
>> at org.apache.camel.component.**file.GenericFileConsumer.poll(**
>> GenericFileConsumer.java:155)
>> at org.apache.camel.impl.**ScheduledPollConsumer.doRun(**
>> ScheduledPollConsumer.java:**139)
>> at org.apache.camel.impl.**ScheduledPollConsumer.run(**
>> ScheduledPollConsumer.java:91)
>> at java.util.concurrent.**Executors$RunnableAdapter.**
>> call(Executors.java:471)
>> at java.util.concurrent.**FutureTask$Sync.**
>> innerRunAndReset(FutureTask.**java:351)
>> at java.util.concurrent.**FutureTask.runAndReset(**
>> FutureTask.java:178)
>> at java.util.concurrent.**ScheduledThreadPoolExecutor$**
>> ScheduledFutureTask.access$**301(**ScheduledThreadPoolExecutor.**java:178)
>> at java.util.concurrent.**ScheduledThreadPoolExecutor$**
>> ScheduledFutureTask.run(**ScheduledThreadPoolExecutor.**java:293)
>> at java.util.concurrent.**ThreadPoolExecutor.runWorker(**
>> ThreadPoolExecutor.java:1110)
>> at java.util.concurrent.**ThreadPoolExecutor$Worker.run(**
>> ThreadPoolExecutor.java:603)
>> at java.lang.Thread.run(Thread.**java:722)
>> Caused by: org.apache.camel.**RuntimeCamelException: java.lang.**IllegalArgumentException:
>> reader must be specified
>> at org.apache.camel.util.**ObjectHelper.**wrapRuntimeCamelException(**
>> ObjectHelper.java:1280)
>> at org.apache.camel.util.**ObjectHelper.invokeMethod(**
>> ObjectHelper.java:936)
>> at org.apache.camel.impl.**converter.**StaticMethodTypeConverter.**
>> convertTo(**StaticMethodTypeConverter.**java:47)
>> at org.apache.camel.component.**file.GenericFileConverter.**convertTo(
>> **GenericFileConverter.java:93)
>> at sun.reflect.**GeneratedMethodAccessor102.**invoke(Unknown Source)
>> at sun.reflect.**DelegatingMethodAccessorImpl.**invoke(**
>> DelegatingMethodAccessorImpl.**java:43)
>> at java.lang.reflect.Method.**invoke(Method.java:601)
>> at org.apache.camel.util.**ObjectHelper.invokeMethod(**
>> ObjectHelper.java:932)
>> at org.apache.camel.impl.**converter.**StaticMethodFallbackTypeConver*
>> *ter.convertTo(**StaticMethodFallbackTypeConver**ter.java:50)
>> at org.apache.camel.impl.**converter.**BaseTypeConverterRegistry.**
>> doConvertTo(**BaseTypeConverterRegistry.**java:289)
>> at org.apache.camel.impl.**converter.**BaseTypeConverterRegistry.**
>> convertTo(**BaseTypeConverterRegistry.**java:111)
>> ... 70 more
>> Caused by: java.lang.**IllegalArgumentException: reader must be specified
>> at org.apache.camel.util.**ObjectHelper.notNull(**
>> ObjectHelper.java:290)
>> at org.apache.camel.util.**IOHelper.buffered(IOHelper.**java:117)
>> at org.apache.camel.converter.**IOConverter.toByteArray(**
>> IOConverter.java:261)
>> at sun.reflect.**GeneratedMethodAccessor230.**invoke(Unknown Source)
>> at sun.reflect.**DelegatingMethodAccessorImpl.**invoke(**
>> DelegatingMethodAccessorImpl.**java:43)
>> at java.lang.reflect.Method.**invoke(Method.java:601)
>> at org.apache.camel.util.**ObjectHelper.invokeMethod(**
>> ObjectHelper.java:932)
>> ... 79 more
>>
>> Anyone have idea?
>>
>> Thanks
>> Leandro Franchi
>>
Re: File do ActiveMQ
Posted by Christian Müller <ch...@gmail.com>.
Which version do you use?
Hoe does your route looks like?
Sent from a mobile device
Am 06.11.2012 19:29 schrieb "Leandro Franchi" <le...@gmail.com>:
> Hi,
>
> I've a route to read files, convert the body to string and send to
> ActiveMQ. It's ok, but somentimes, I've got these error:
>
>
> 06/11/2012 16:19:19.174 [Camel (mirCamel) thread #21 - file:/tmp] ERROR
> org.apache.camel.processor.**FatalFallbackErrorHandler:55 - \--> New
> exception on exchangeId: ID-alxredmircol01-51775-**1352225432241-0-14234
> org.apache.camel.**TypeConversionException: Error during type conversion
> from type: org.apache.camel.component.**file.GenericFile to the required
> type: byte[] with value GenericFile[/mnt/sox/HST/**20121030_174713_N.txt]
> due java.lang.**IllegalArgumentException: reader must be specified
> at org.apache.camel.impl.**converter.**BaseTypeConverterRegistry.**
> convertTo(**BaseTypeConverterRegistry.**java:126)
> at org.apache.camel.component.**jms.JmsBinding.**
> createJmsMessageForType(**JmsBinding.java:534)
> at org.apache.camel.component.**jms.JmsBinding.**
> createJmsMessage(JmsBinding.**java:464)
> at org.apache.camel.component.**jms.JmsBinding.makeJmsMessage(**
> JmsBinding.java:285)
> at org.apache.camel.component.**jms.JmsProducer$2.**
> createMessage(JmsProducer.**java:266)
> at org.apache.camel.component.**jms.JmsConfiguration$**
> CamelJmsTemplate.**doSendToDestination(**JmsConfiguration.java:214)
> at org.apache.camel.component.**jms.JmsConfiguration$**
> CamelJmsTemplate.access$100(**JmsConfiguration.java:157)
> at org.apache.camel.component.**jms.JmsConfiguration$**
> CamelJmsTemplate$3.doInJms(**JmsConfiguration.java:191)
> at org.springframework.jms.core.**JmsTemplate.execute(**
> JmsTemplate.java:466)
> at org.apache.camel.component.**jms.JmsConfiguration$**
> CamelJmsTemplate.send(**JmsConfiguration.java:188)
> at org.apache.camel.component.**jms.JmsProducer.doSend(**
> JmsProducer.java:398)
> at org.apache.camel.component.**jms.JmsProducer.processInOnly(**
> JmsProducer.java:352)
> at org.apache.camel.component.**jms.JmsProducer.process(**
> JmsProducer.java:132)
> at org.apache.camel.util.**AsyncProcessorHelper.process(**
> AsyncProcessorHelper.java:73)
> at org.apache.camel.processor.**SendProcessor$2.**doInAsyncProducer(**
> SendProcessor.java:120)
> at org.apache.camel.impl.**ProducerCache.**doInAsyncProducer(**
> ProducerCache.java:292)
> at org.apache.camel.processor.**SendProcessor.process(**
> SendProcessor.java:115)
> at org.apache.camel.util.**AsyncProcessorHelper.process(**
> AsyncProcessorHelper.java:73)
> at org.apache.camel.processor.**DelegateAsyncProcessor.**processNext(*
> *DelegateAsyncProcessor.java:**99)
> at org.apache.camel.processor.**DelegateAsyncProcessor.**process(**
> DelegateAsyncProcessor.java:**90)
> at org.apache.camel.management.**InstrumentationProcessor.**process(**
> InstrumentationProcessor.java:**73)
> at org.apache.camel.util.**AsyncProcessorHelper.process(**
> AsyncProcessorHelper.java:73)
> at org.apache.camel.processor.**DelegateAsyncProcessor.**processNext(*
> *DelegateAsyncProcessor.java:**99)
> at org.apache.camel.processor.**DelegateAsyncProcessor.**process(**
> DelegateAsyncProcessor.java:**90)
> at org.apache.camel.processor.**interceptor.TraceInterceptor.**
> process(TraceInterceptor.java:**91)
> at org.apache.camel.processor.**interceptor.**
> StreamCachingInterceptor.**process(**StreamCachingInterceptor.java:**52)
> at org.apache.camel.processor.**RouteContextProcessor.**processNext(**
> RouteContextProcessor.java:45)
> at org.apache.camel.processor.**DelegateAsyncProcessor.**process(**
> DelegateAsyncProcessor.java:**90)
> at org.apache.camel.processor.**interceptor.DefaultChannel.**
> process(DefaultChannel.java:**303)
> at org.apache.camel.util.**AsyncProcessorHelper.process(**
> AsyncProcessorHelper.java:73)
> at org.apache.camel.processor.**Pipeline.process(Pipeline.**java:117)
> at org.apache.camel.processor.**Pipeline.process(Pipeline.**java:80)
> at org.apache.camel.util.**AsyncProcessorHelper.process(**
> AsyncProcessorHelper.java:73)
> at org.apache.camel.processor.**DelegateAsyncProcessor.**processNext(*
> *DelegateAsyncProcessor.java:**99)
> at org.apache.camel.processor.**FatalFallbackErrorHandler.**
> processNext(**FatalFallbackErrorHandler.**java:42)
> at org.apache.camel.processor.**DelegateAsyncProcessor.**process(**
> DelegateAsyncProcessor.java:**90)
> at org.apache.camel.util.**AsyncProcessorHelper.process(**
> AsyncProcessorHelper.java:73)
> at org.apache.camel.processor.**RedeliveryErrorHandler.**
> deliverToFailureProcessor(**RedeliveryErrorHandler.java:**759)
> at org.apache.camel.processor.**RedeliveryErrorHandler.**
> processErrorHandler(**RedeliveryErrorHandler.java:**273)
> at org.apache.camel.processor.**RedeliveryErrorHandler.**process(**
> RedeliveryErrorHandler.java:**220)
> at org.apache.camel.processor.**interceptor.**
> StreamCachingInterceptor.**process(**StreamCachingInterceptor.java:**52)
> at org.apache.camel.processor.**RouteContextProcessor.**processNext(**
> RouteContextProcessor.java:45)
> at org.apache.camel.processor.**DelegateAsyncProcessor.**process(**
> DelegateAsyncProcessor.java:**90)
> at org.apache.camel.processor.**interceptor.DefaultChannel.**
> process(DefaultChannel.java:**303)
> at org.apache.camel.util.**AsyncProcessorHelper.process(**
> AsyncProcessorHelper.java:73)
> at org.apache.camel.processor.**Pipeline.process(Pipeline.**java:117)
> at org.apache.camel.processor.**Pipeline.process(Pipeline.**java:80)
> at org.apache.camel.processor.**RouteContextProcessor.**processNext(**
> RouteContextProcessor.java:45)
> at org.apache.camel.processor.**DelegateAsyncProcessor.**process(**
> DelegateAsyncProcessor.java:**90)
> at org.apache.camel.processor.**UnitOfWorkProcessor.**processAsync(**
> UnitOfWorkProcessor.java:150)
> at org.apache.camel.processor.**UnitOfWorkProcessor.process(**
> UnitOfWorkProcessor.java:117)
> at org.apache.camel.processor.**RouteInflightRepositoryProcess**
> or.processNext(**RouteInflightRepositoryProcess**or.java:48)
> at org.apache.camel.processor.**DelegateAsyncProcessor.**process(**
> DelegateAsyncProcessor.java:**90)
> at org.apache.camel.util.**AsyncProcessorHelper.process(**
> AsyncProcessorHelper.java:73)
> at org.apache.camel.processor.**DelegateAsyncProcessor.**processNext(*
> *DelegateAsyncProcessor.java:**99)
> at org.apache.camel.processor.**DelegateAsyncProcessor.**process(**
> DelegateAsyncProcessor.java:**90)
> at org.apache.camel.management.**InstrumentationProcessor.**process(**
> InstrumentationProcessor.java:**73)
> at org.apache.camel.component.**file.GenericFileConsumer.**
> processExchange(**GenericFileConsumer.java:336)
> at br.com.flexvision.mir.**collector.component.sw.file.**
> FileSwitchConsumer.**processExchange(**FileSwitchConsumer.java:26)
> at org.apache.camel.component.**file.GenericFileConsumer.**
> processBatch(**GenericFileConsumer.java:189)
> at org.apache.camel.component.**file.GenericFileConsumer.poll(**
> GenericFileConsumer.java:155)
> at org.apache.camel.impl.**ScheduledPollConsumer.doRun(**
> ScheduledPollConsumer.java:**139)
> at org.apache.camel.impl.**ScheduledPollConsumer.run(**
> ScheduledPollConsumer.java:91)
> at java.util.concurrent.**Executors$RunnableAdapter.**
> call(Executors.java:471)
> at java.util.concurrent.**FutureTask$Sync.**
> innerRunAndReset(FutureTask.**java:351)
> at java.util.concurrent.**FutureTask.runAndReset(**
> FutureTask.java:178)
> at java.util.concurrent.**ScheduledThreadPoolExecutor$**
> ScheduledFutureTask.access$**301(**ScheduledThreadPoolExecutor.**java:178)
> at java.util.concurrent.**ScheduledThreadPoolExecutor$**
> ScheduledFutureTask.run(**ScheduledThreadPoolExecutor.**java:293)
> at java.util.concurrent.**ThreadPoolExecutor.runWorker(**
> ThreadPoolExecutor.java:1110)
> at java.util.concurrent.**ThreadPoolExecutor$Worker.run(**
> ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.**java:722)
> Caused by: org.apache.camel.**RuntimeCamelException: java.lang.**IllegalArgumentException:
> reader must be specified
> at org.apache.camel.util.**ObjectHelper.**wrapRuntimeCamelException(**
> ObjectHelper.java:1280)
> at org.apache.camel.util.**ObjectHelper.invokeMethod(**
> ObjectHelper.java:936)
> at org.apache.camel.impl.**converter.**StaticMethodTypeConverter.**
> convertTo(**StaticMethodTypeConverter.**java:47)
> at org.apache.camel.component.**file.GenericFileConverter.**convertTo(
> **GenericFileConverter.java:93)
> at sun.reflect.**GeneratedMethodAccessor102.**invoke(Unknown Source)
> at sun.reflect.**DelegatingMethodAccessorImpl.**invoke(**
> DelegatingMethodAccessorImpl.**java:43)
> at java.lang.reflect.Method.**invoke(Method.java:601)
> at org.apache.camel.util.**ObjectHelper.invokeMethod(**
> ObjectHelper.java:932)
> at org.apache.camel.impl.**converter.**StaticMethodFallbackTypeConver*
> *ter.convertTo(**StaticMethodFallbackTypeConver**ter.java:50)
> at org.apache.camel.impl.**converter.**BaseTypeConverterRegistry.**
> doConvertTo(**BaseTypeConverterRegistry.**java:289)
> at org.apache.camel.impl.**converter.**BaseTypeConverterRegistry.**
> convertTo(**BaseTypeConverterRegistry.**java:111)
> ... 70 more
> Caused by: java.lang.**IllegalArgumentException: reader must be specified
> at org.apache.camel.util.**ObjectHelper.notNull(**
> ObjectHelper.java:290)
> at org.apache.camel.util.**IOHelper.buffered(IOHelper.**java:117)
> at org.apache.camel.converter.**IOConverter.toByteArray(**
> IOConverter.java:261)
> at sun.reflect.**GeneratedMethodAccessor230.**invoke(Unknown Source)
> at sun.reflect.**DelegatingMethodAccessorImpl.**invoke(**
> DelegatingMethodAccessorImpl.**java:43)
> at java.lang.reflect.Method.**invoke(Method.java:601)
> at org.apache.camel.util.**ObjectHelper.invokeMethod(**
> ObjectHelper.java:932)
> ... 79 more
>
> Anyone have idea?
>
> Thanks
> Leandro Franchi
>