Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 无法在Camel路由中使用Bean方法_Spring Boot_Apache Camel - Fatal编程技术网

Spring boot 无法在Camel路由中使用Bean方法

Spring boot 无法在Camel路由中使用Bean方法,spring-boot,apache-camel,Spring Boot,Apache Camel,这是我的路线课 @Component public class MyRoute extends RouteBuilder { @Value("${spring.enablelog}") public boolean enablelog; @Value("${spring.enableroutepolicy}") public boolean enableroutepolicy;

这是我的路线课

@Component
public class MyRoute extends RouteBuilder {
    
    @Value("${spring.enablelog}")
    public boolean enablelog;
    
    @Value("${spring.enableroutepolicy}")
    public boolean enableroutepolicy;
    
    
    @Override
    public void configure() throws Exception {
                
        CronScheduleRoutePolicy routepolicy = new CronScheduleRoutePolicy();
        routepolicy.setRouteStartTime("StartTime");
        routepolicy.setRouteStoptTime("StopTime");
        routepolicy.setRouteStartTime("StartTime");
    
        from("activemq:queue:inputq")
        .setProperty(Enablelog, constant(enablelog))
        .choice().when(exchangeProperty(Enablelog).isEqualTo(True))
            .bean(MyRoute.class, "setlogProperties('*', 'Request', 'Pending','Received Input message')")
            .process(logProcessor).endChoice()
        .process(msgProcessor).split().body()
        .toD("activemq:queue:waitq")
        .choice().when(exchangeProperty(Enablelog).isEqualTo(True))
            .bean(MyRoute.class, "setlogProperties('*', 'Response', 'Waiting','Response message waiting to be delivered')")
            .process(logProcessor).endChoice()
        .end();

        
        if (enableroutepolicy == true) {
        from("activemq:queue:waitq").routePolicy(routepolicy).noAutoStartup()
        .toD("activemq:queue:outputq")
        .choice().when(exchangeProperty(Enablelog).isEqualTo(True))
            .bean(MyRoute.class, "setlogProperties('*', 'Response', 'Success','Response message delivered')")
            .process(logProcessor).endChoice()
        .end();
        } else {
        from("activemq:queue:waitq").toD("activemq:queue:outputq")
        .choice().when(exchangeProperty(Enablelog).isEqualTo(True))
            .bean(MyRoute.class, "setlogProperties('*', 'Response', 'Success','Response message delivered')")
            .process(logProcessor).endChoice()
        .end();
        }
        
    }
    
    public void setlogPoperties(Exchange exchange, String msgtype, String status, String statusMessage ) {
        
        exchange.setrPoperty("MessageType", msgtype);
        exchange.setrPoperty("Status",status);
        exchange.setrPoperty("StatusMessage",statusMessage);
    }
     
}
在这条路线上,我有两条路线

  • 从InQueue到WaitQueue
  • 从等待队列到输出队列
  • 第一条路线始终处于激活状态,我正在根据要求激活第二条路线。在第二个路由中,我无法调用.bean()并将参数传递给setlogPoperties()。我是骆驼新手,不知道如何解决这个问题。感谢您的任何帮助


    谢谢,

    此问题的根本原因可能是没有从属性文件中提取“enablelog”和“enableroutepolicy”,并且由于布尔值的默认值为false,您的代码无法访问setlogPoperties()

    您已将该类注释为@组件。因此,为了让@Value从属性文件中检索值,请确保您正在定义一个自身或创建一个