Camel AWS SNS例外

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Camel AWS SNS例外相关的知识,希望对你有一定的参考价值。

我正在尝试使用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我尝试?

提前致谢

答案

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

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

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

以上是关于Camel AWS SNS例外的主要内容,如果未能解决你的问题,请参考以下文章

使用 Laravel 的 AWS SNS 推送通知

Zabbix借助AWS SNS触发短信告警

AWS SNS 推送通知

亚马逊 AWS SNS 注册申请

使用 Node JS 的 AWS SNS 推送通知

AWS Beanstalk - 创建新环境时向 Lambda 发送 SNS 通知