현재 Camel을 사용중인 Spring 애플리케이션을 개발 중입니다. 애플리케이션에 진입 점으로 SQS를 폴링합니다 (1 차 경로). 스프링의 XML 기반 접근법을 사용하여 성공적으로 달성 할 수있었습니다.Camel, Amazon SQS - 유형 변환 : java.lang.String에서 필수 유형으로 변환 : com.amazonaws.services.sqs.AmazonSQS
내 AmazonSQSClient 콩 :
<bean id="sqsClient" class="com.amazonaws.services.sqs.AmazonSQSClient">
<constructor-arg ref="sqsCredentialsProvider" />
<property name="endpoint" value="${aws.sqs.endpoint}" />
</bean>
내 낙타 경로 : 나는 위의 접근 방식이 시점에서 원하는
<route id="pollMessages">
<from id="sqsEndpoint" uri="aws-sqs://{{queue.name}}?amazonSQSClient=#sqsClient&deleteAfterRead=false" />
<to uri="direct:readSQSMessage" />
</route>
모든 작동합니다.
이제 모든 콩과 Camel Configuration을 Java 기반 접근 방식으로 마이그레이션하려고합니다.
나는 다음과 같은 내 아마존 SQS 클라이언트 콩을 만든이를 사용하지만
@Bean
public CamelContext camelContext() throws Exception{
CamelContext camelContext = new DefaultCamelContext();
camelContext.addRoutes(new RouteBuilder() {
@Override
public void configure() {
from("aws-sqs://"+fulfillmentQueueName+"?amazonSQSClient=#sqsClient&delay="+fulfillmentQueuePollInterval)
.to("direct:parseSQSMessage");
}
});
camelContext.start();
return camelContext;
}
, 나는 점점 오전 오류 : 나는 낙타 경로 (조각)을 생성하고,
@Bean
public AmazonSQS sqsClient(){
ClientConfiguration clientConfiguration = new ClientConfiguration();
AmazonSQSClient client = new AmazonSQSClient(sqsCredentialsProvider(), clientConfiguration);
client.setEndpoint(sqsEndpoint);
return client;
}
을 그리고처럼 보이는 접근 :
java.lang.IllegalArgumentException : 동일한 유형의 setter 메소드가 없으므로 amazonSQSClient 속성에 적절한 설정자를 찾을 수 없습니다. java.lang.String도 아닙니다. 타입 변환 가능 : 타입 변환이 불가능한 타입 변환기 : java.lang.String from 필수 타입 : com.amazonaws.services.sqs.AmazonSQS 값 #sqsClient
here 자바 스타일 카멜 생성 방법 경로
는 내가 레지스트리 (registry.bind)에 AWS 클라이언트를 바인드해야 here를 읽을 수 있지만 나는뿐만 아니라이 시도 JNDI
을 제외한 모든 레지스트리에 바인드 방법을 찾을 수 없습니다입니다 :
SimpleRegistry registry = new SimpleRegistry();
registry.put("sqsClient", sqsClient());
CamelContext camelContext = new DefaultCamelContext(registry);
하지만 같은 오류가 발생했습니다.
나는 많은 것을 수색하고 더 많은 일을 계속하기를 계획했지만, 내가해야 할 일을하는 완전한 모범을 찾을 수 없다. 스 니펫이 여기에서 많은 도움이되고 있습니다.
도움을 주시면 대단히 감사하겠습니다. 감사합니다