Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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
Apache camel Apache Camel在启动后立即关闭,未记录任何原因,也未引发异常_Apache Camel_Shutdown - Fatal编程技术网

Apache camel Apache Camel在启动后立即关闭,未记录任何原因,也未引发异常

Apache camel Apache Camel在启动后立即关闭,未记录任何原因,也未引发异常,apache-camel,shutdown,Apache Camel,Shutdown,我观察到,路由定义中的错误会导致应用程序的静默关闭,这是由Camel引起的。我如何配置骆驼来告诉我它到底不喜欢什么 简单示例:指定重复的路由名称 如果我[通过使用:.id(“route name”)]定义两个具有不同名称的路由,则应用程序将启动并报告就绪情况 如果我两次错误地使用名称,应用程序将无法完全启动,Camel将宣布: Apache Camel 2.22.0 (CamelContext: camel-1) is shutting down Apache Camel 2.22.0 (Cam

我观察到,路由定义中的错误会导致应用程序的静默关闭,这是由Camel引起的。我如何配置骆驼来告诉我它到底不喜欢什么

简单示例:指定重复的路由名称

如果我[通过使用:
.id(“route name”)
]定义两个具有不同名称的路由,则应用程序将启动并报告就绪情况

如果我两次错误地使用名称,应用程序将无法完全启动,Camel将宣布:

Apache Camel 2.22.0 (CamelContext: camel-1) is shutting down
Apache Camel 2.22.0 (CamelContext: camel-1) uptime 0.332 seconds
Apache Camel 2.22.0 (CamelContext: camel-1) is shutdown in 0.017 seconds
Stopping service [Tomcat]
HikariPool-1 - Shutdown initiated ...
HikariPool-1 - Shutdown completed.
Process finished with exit code 0
退出代码0似乎表示非异常关机

当我向路由添加cronScheduledOutPolicy时,也发生了同样的早期关闭。[例如,使用routePolicy(策略)] 如果我添加默认实例或对策略进行任何设置,它将关闭

我增加了日志级别,得到了明显更多的背景噪音,但没有新的发现。[使用application.yml:logging:level:ROOT:DEBUG] 围绕路线定义进行尝试性捕获没有帮助。在路线定义时未捕获任何异常

我试图将cronScheduledulePolicy设置为异常处理程序。[例如,使用policy.setExceptionHandler(myCamelExceptionHandlerLoggingEverything)] 没有记录任何内容。未命中断点

我将非常感谢您的帮助或提及任何解决方案


Ralf

您可以尝试定义自定义关机策略

打印准确错误的方法有多种,这取决于开发人员如何使用驼峰路线设计应用程序/类。我已经提到了下面的例子,它将给出您正在寻找的确切错误

public class CamelPrintingExample {

   public static void main(String[] args) throws Exception {
      CamelContext camelContext = new DefaultCamelContext();
      try {
         camelContext.addRoutes(new RouteBuilder() {
            public void configure() {


               from("file:C:\\input\\").routeId("demo")
                  .to("file:C:\\output\\").end();

               from("file:C:\\input\\").routeId("demo")
                 .to("file:C:\\output\\").end();

            }
         });
         camelContext.start();
         Thread.sleep(300000);
         camelContext.stop();
      } catch (Exception camelException) {    
         camelException.printStackTrace();

      }
   }
}
通过运行这个,我得到了以下错误。
org.apache.camel.FailedToStartRouteException:无法启动路由演示,因为检测到重复id:演示。请更正ID,使其在所有路线中唯一。

尝试将其添加到路线中,然后启动:

getContext().setTracing(true)


另外,您的错误处理程序中也可能存在问题

这将如何帮助我获得有关关机原因的更多信息?您在@ralf-k方面有任何进展吗?