如何实现ApacheCamel与板条集成(JavaDSL)?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (117)

有没有人想过把一条松懈的通道连接到一条路线上?可以用JavaDSL完成吗?

有人有配置该组件的示例吗?

提问于
用户回答回答于

Apache使用松弛的传入webhooks。此链接显示有关如何创建应用程序和设置webhooks的详细信息。

由于频道能够接收消息,java代码可能是这样的(XXX / YYY / ZZZ将根据您创建的钩子而改变):

final CamelContext camel = new DefaultCamelContext();
final SlackComponent slackComponent = (SlackComponent) camel.getComponent("slack");
slackComponent.setWebhookUrl("https://hooks.slack.com/services/XXX/YYY/ZZZ");

/* Create the routes */
camel.addRoutes(new RouteBuilder() {
  @Override
  public void configure() {
    from("timer:test?period=2000").setBody(simple("foo")).to("slack:#general");
}});

关于消费者方面由于松弛的webhooks限制而无法正常工作,只能向消息发送消息。

用户回答回答于

在项目中添加camel-slack依赖项后,组件将自动在camel上下文中注册。您可以从那里获取SlackComponent并在扩展的RouteBuilder中配置它:

public void configure() throws Exception {
    //...
    // get the slack component
    final SlackComponent slackComponent = (SlackComponent) this.getContext().getComponent("slack");
    // set the webhook URL
    slackComponent.setWebhookUrl("<yourWebhookUrl>"));
    //...
    this.from("direct:notification").to("slack:#your-channel")
}

扫码关注云+社区

领取腾讯云代金券