有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何从计时器触发路由

我想从计时器任务中触发一个路由。当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) 个答案

  1. # 1 楼答案

    为了让@product注释正常工作,您的提醒任务实例需要由容器管理(例如camel spring、blueprint)

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

    如果不进一步了解上下文是如何创建(和管理)的,就很难进一步回答这个问题