Camel AWS SNS例外

问题描述 投票:0回答:1

我正在尝试使用camel sns库使用Apache camel发送SNS。

我使用了http://camel.apache.org/aws-sns.html找到的文档

它说我需要定义一个客户端,然后将其绑定到注册表。因此我使用此代码完成了此操作:

BasicAWSCredentials creds = new BasicAWSCredentials(accessKey, secretKey);
AmazonS3 client = AmazonS3Client.builder().withRegion("eu-west-1")
                        .withCredentials(new AWSStaticCredentialsProvider(creds))
                        .build();

CamelContext context = new DefaultCamelContext();
            JndiRegistry registry = (JndiRegistry) ((PropertyPlaceholderDelegateRegistry)context.getRegistry()).getRegistry();
            registry.bind("client", client);

在此之后,在我的骆驼路线中,我正在执行此操作

from(mySftp.getUri("/camel"))
to("aws-sns://"+topicArn+"?amazonSNSClient=#client")

使用此代码,我收到此错误 -

无法在以下位置创建路由route1:>>> To [aws-sns:// arn:aws:sns:eu-west-1:xxxxxx?amazonSNSClient =#client] <<< in route:Route(route1)[[From [sftp:// xxxxxxxx ...因为无法解析端点:aws-sns:// arn:aws:sns:eu-west-1:xxxxxxxx?amazonSNSClient =%23client由于:找不到合适的setter for property:amazonSNSClient,因为没有相同类型的setter方法:java.lang.String也没有类型转换:没有类型转换器可用于从类型:java.lang.String转换为所需类型:com.amazonaws.services。 sns.AmazonSNS的值为#client

除此之外,我还尝试使用以下骆驼路线发送sns

.to("aws-sns://"+topicArn+"?accessKey="+accessKey+"&secretKey="+secretKey+"&amazonSNSEndpoint="+snsEndpoint)

但是它告诉我虽然我的snsEnpoint设置为-sns.eu-west-1.amazonaws.com,但没有提供任何区域

任何人都知道为什么我不能以任何方式使用骆驼发送sns我尝试?

提前致谢

java amazon-web-services apache-camel amazon-sns
1个回答
2
投票

你绑定一个AmazonS3Client,但它需要一个AmazonSNSClient

Camel无法将对AmazonS3Client的引用转换为AmazonSNSClient的实例。

http://camel.apache.org/aws-sns.html#AWS-SNS-AdvancedAmazonSNSconfiguration

© www.soinside.com 2019 - 2024. All rights reserved.