camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Willem Jiang <willem.ji...@gmail.com>
Subject Re: Issue in upload with Camel
Date Tue, 29 Dec 2009 07:59:34 GMT
If you are using file endpoint to pull the directory, it is hard to tell 
if the uploading processor is over,
Can you take look at the camel polling consumer API[1] (Timer based 
polling consumer example), in this way you can add you logic to check if 
the file pulling is finished, and the sendTemplate will return when the 
  uploading work is over.

[1]http://camel.apache.org/polling-consumer.html

Willem

Hebert Hu wrote:
> I started the upload like this
> 
> CamelContext context = new DefaultCamelContext();
> RouteBuilder route = createRouteBuilder();
> context.addRoutes(route);
> context.start();
> 
> I'm able to get the route service status by 
> RouteDefinition definition = context.getRouteDefinitions().get(0);
> context.getRouteStatus(definition)
> 
> But how can I tell whther the upload is finished?
> As I always get "Started" even the upload is finished.
> 
> 
> Hebert Hu wrote:
>> Hi, 
>>
>> I've encountered a strange problem when using Camel Sftp component for
>> uploading.
>>
>> Here's my code
>>
>>     protected RouteBuilder createRouteBuilder() throws Exception {
>>         return new RouteBuilder() {
>>             public void configure() throws Exception {
>>                 from("file:c:\\uploadfiles?noop=true").to(getFtpUrl());
>>                 from(getFtpUrl()).to("mock:result");
>>             }
>>         };
>>     }
>>
>> private String getFtpUrl(){
>> 	return
>> "sftp://username@sftpserver/ftpload?password=password&binary=true&knownHostsFile=c://.ssh//known_hosts";
>> 	}
>>
>> The problem is: When I start my upload procedure, for the files in the
>> c:\uploadfiles (multiples files), some of them will create a .camellock
>> file while others not. As in the remote server, some of the files that
>> have a .camellock copy will be uploaded while others not. Noted that not
>> all the files that has .camellock copies will be uploaded. And an
>> exception is thrown
>> SEVERE: Cannot retrieve file: ftpload/a.txt
>> org.apache.camel.component.file.GenericFileOperationFailedException:
>> Cannot retrieve file: ftpload/a.txt
>> 	at
>> org.apache.camel.component.file.remote.SftpOperations.retrieveFileToStreamInBody(SftpOperations.java:326)
>> 	at
>> org.apache.camel.component.file.remote.SftpOperations.retrieveFile(SftpOperations.java:312)
>> 	at
>> org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:183)
>> 	at
>> org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
>> 	at
>> org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
>> 	at
>> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:99)
>> 	at
>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:432)
>> 	at
>> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:295)
>> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
>> 	at
>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:80)
>> 	at
>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:157)
>> 	at
>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:181)
>> 	at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
>> 	at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
>> 	at java.lang.Thread.run(Thread.java:799)
>> When I run the upload procedure again, more .camellock files appeared,
>> more files been uploaded, and the exception is still thrown.
>> For example. 10 files in c:\uploadfiles, run the upload for the first
>> time, 5 .camellock appeared, 1 file with .camellock uploaded, and an
>> exception. Run for the second time, 2 more .camellock appeared, 1 more
>> file uploaded, and an exception again.
>>
>> I'm using Camel-core 2.0.0, camel-ftp 2.0.0
>>
>> Can any one shed some light on me?
>>
> 


Mime
View raw message