代码之家  ›  专栏  ›  技术社区  ›  malteser

驼峰AWS SNS例外

  •  0
  • malteser  · 技术社区  · 7 年前

    我正在尝试使用Apache camel通过camel SNS库发送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:>&燃气轮机&燃气轮机; 至[美国焊接学会-sns://arn:aws:sns:eu-西一:xxxxxx?AmazonSClient=#客户端] <<<途中: 路由(route1)[[来自[sftp://xxxxxxxx... 由于未能解析终结点: 美国焊接学会-sns://arn:aws:sns:eu-西一:xxxxxxxx?amazonSNSClient=%23客户端 由于:无法为属性AmazonSClient找到合适的setter 因为没有相同类型的setter方法:java。lang.字符串nor 可能的类型转换:没有可用于转换的类型转换器 类型:java。所需类型的lang.字符串: 通用域名格式。amazonaws。服务。sns。具有值的AmazonSNS#客户端

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

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

    但它告诉我,虽然我的snsEnpoint设置为- sns.eu-west-1.amazonaws.com

    有人知道为什么我不能以我尝试过的方式使用camel发送sns吗?

    提前感谢

    1 回复  |  直到 7 年前
        1
  •  2
  •   Davide Cavestro    7 年前

    您正在绑定 AmazonS3Client ,但它需要 AmazonSNSClient

    Camel无法将引用转换为 亚马逊3客户 到的实例 亚马逊客户

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