2014-03-28 6 views
0

낙타의 잘못된 액세스/비밀 키는 어떻게 처리해야합니까?apache camel - aws s3의 자격 증명이 잘못되었습니다.

나는 낙타의 errorHandler을 사용해 보았지만 메시지 교환에 실패하여 오류가 발생했다. 교환 전에도이 문제가 발생했다.

나는 pollingStrategy도 시도했으며, rollback()에서 오류를 잡을 수있는 것 같습니다. 이 문제는 내 메소드가 false를 리턴하더라도 여전히 재 시도 중이다. 재시도 사이의 지연을 지정해야 할 필요가 있습니다.이 클래스를 구현할 때 PollingConsumerPollStrategy을 구현해야합니까?

@Override 
public boolean rollback(Consumer consumer, Endpoint endpoint, int retryCounter, Exception e) throws Exception { 
    System.out.println("retryCounter " + retryCounter); 
    if (retryCounter < 3) { 
     // return true to tell Camel that it should retry the poll immediately 
     return true; 
    } 
    // okay we give up do not retry anymore 
    return false; 
} 


14:20:26.406 WARN o.a.c.component.aws.s3.S3Consumer [Camel (camelContext) thread #0 - aws-s3://thebucket] - log:224 - Consumer S3Consumer[aws-s3://thebucket?amazonS3Client=%23s3Client] failed polling endpoint: Endpoint[aws-s3://thebucket?amazonS3Client=%23s3Client]. Will try again at next poll. Caused by: [com.amazonaws.services.s3.model.AmazonS3Exception - The AWS Access Key Id you provided does not exist in our records.] 
com.amazonaws.services.s3.model.AmazonS3Exception: The AWS Access Key Id you provided does not exist in our records. 
    at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:659) ~[aws-java-sdk-1.5.1.jar:na] 
    at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:347) ~[aws-java-sdk-1.5.1.jar:na] 
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:199) ~[aws-java-sdk-1.5.1.jar:na] 
    at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2994) ~[aws-java-sdk-1.5.1.jar:na] 
    at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2965) ~[aws-java-sdk-1.5.1.jar:na] 
    at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:481) ~[aws-java-sdk-1.5.1.jar:na] 
    at org.apache.camel.component.aws.s3.S3Consumer.poll(S3Consumer.java:69) ~[camel-aws-2.12.1.jar:2.12.1] 
    at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:187) [camel-core-2.12.1.jar:2.12.1] 
    at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:114) [camel-core-2.12.1.jar:2.12.1] 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_45] 
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) [na:1.7.0_45] 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) [na:1.7.0_45] 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.7.0_45] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_45] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_45] 
    at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45] 
14:20:27.927 WARN o.a.c.component.aws.s3.S3Consumer [Camel (camelContext) thread #0 - aws-s3://thebucket] - log:224 - Consumer S3Consumer[aws-s3://thebucket?amazonS3Client=%23s3Client] failed polling endpoint: Endpoint[aws-s3://thebucket?amazonS3Client=%23s3Client]. Will try again at next poll. Caused by: [com.amazonaws.services.s3.model.AmazonS3Exception - The AWS Access Key Id you provided does not exist in our records.] 
com.amazonaws.services.s3.model.AmazonS3Exception: The AWS Access Key Id you provided does not exist in our records. 
    at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:659) ~[aws-java-sdk-1.5.1.jar:na] 
    at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:347) ~[aws-java-sdk-1.5.1.jar:na] 
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:199) ~[aws-java-sdk-1.5.1.jar:na] 
    at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2994) ~[aws-java-sdk-1.5.1.jar:na] 
    at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2965) ~[aws-java-sdk-1.5.1.jar:na] 
    at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:481) ~[aws-java-sdk-1.5.1.jar:na] 
    at org.apache.camel.component.aws.s3.S3Consumer.poll(S3Consumer.java:69) ~[camel-aws-2.12.1.jar:2.12.1] 
    at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:187) [camel-core-2.12.1.jar:2.12.1] 
    at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:114) [camel-core-2.12.1.jar:2.12.1] 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_45] 
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) [na:1.7.0_45] 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) [na:1.7.0_45] 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.7.0_45] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_45] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_45] 
    at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45] 

많은 감사!

답변

-1

낙타 2.12.x 또는 낙타 2.13.0을 사용하는 경우 URI 옵션을 backoff*으로 설정할 수 있습니다.

관련 문제