【问题标题】:Subscribe/consume HornetQ topics in Java with Apache Camel route使用 Apache Camel 路由订阅/使用 Java 中的 HornetQ 主题
【发布时间】:2014-05-01 00:10:58
【问题描述】:

我想将this example 转换为java(即不要使用spring DSL)。我可以站起来对象,但对如何在路由 uri 中引用 JmsComponent bean(链接示例的第 34 行)感到困惑。

Java 示例:

    // Stand up JndiTemplate
    Properties env = new Properties();
    env.setValue("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
    env.setValue("java.naming.provider.url","jnp://localhost:1099");
    env.setValue("java.naming.factory.url.pkgs","org.jnp.interfaces:org.jboss.naming");
    JndiTemplate template = new JndiTemplate;
    template.setEnvironment(env);

    // Stand up JndiObjectFactoryBean
    JndiObjectFactoryBean factory = new JndiObjectFactoryBean();
    factory.setJndiTemplate(template);
    factory.setJndiName("ConnectionFactory");

    // Stand up JmsComponent
    JmsComponent component = new JmsComponent();
    component.setSonnectionFactory(factory);

    // Stand up camel context and route
    final CamelContext camelContext = new DefaultCamelContext();
    camelContext.addRoutes(new RouteBuilder() {
        public void configure() {
            from("WHAT_GOES_HERE:topic:myTopic").to("direct:a")
        }
    });
    camelContext.setTracing(true);
    camelContext.start();

问题: 我如何在 from URI 中引用我的 JmsComponent? 和/或 有没有更好的方法可以使用 Java/Apache Camel 做到这一点?

【问题讨论】:

    标签: java apache-camel hornetq


    【解决方案1】:

    添加这个:

    camelContext.addComponent("test-jms",component);
    

    然后替换:

    public void configure() {
        from("WHAT_GOES_HERE:topic:myTopic").to("direct:a")
    }
    

    与:

    public void configure() {
        from("test-jms:topic:myTopic").to("direct:a")
    }
    

    更多信息在这里:http://fusesource.com/docs/archives/router/1.6/deploy_guide/FMRDS.ACCC.html

    【讨论】:

    • 感谢您的回复...我会试试看。
    猜你喜欢
    • 2018-03-27
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    相关资源
    最近更新 更多