如何从计时器触发路由

时间:2015-12-04 09:34:53

标签: java apache-camel timertask

我想从定时器任务触发路由。当run方法调用时。我已将ProducerTemplate与注释@Produce一起使用。但是由于producerTemplate为空,它会抛出零点异常。

public class ReminderTask extends TimerTask {

    @Produce
    private ProducerTemplate producerTemplate;

    @Override
    public void run() {
        final Exchange defaultExchange = new DefaultExchange(new DefaultCamelContext());
        producerTemplate.send("direct:simpleRoute", defaultExchange);
    }
}

1 个答案:

答案 0 :(得分:1)

为了让@Produce注释工作,你的ReminderTask实例需要进行容器管理(例如camel-spring,blueprint)。

否则,您必须从定义“direct:simpleRoute”端点的CamelContext实例显式初始化ProducerTemplate字段。

如果不了解有关如何创建(和管理)CamelContext的更多信息,则很难进一步回答这个问题。