Rest DSL with Springboot on Camel 在重新启动 EAP 抛出异常后创建路由



当我尝试使用springboot项目进行休息dsl时,请按照此处的链接进行操作:

https://developers.redhat.com/blog/2018/03/26/camel-spring-boot-rest-dsl/

我的源代码的整体骨架如下所示:

rest("http://localhost:8080/camel-services/rest/Test1")
.post()
.to("direct:route1");
from("direct:route1")
.to("mock:route");

使用的 springboot 版本是:1.5.1.RELEASE,我正在尝试在 EAP-6.4.0 中部署 WAR 文件,并在 EAP 上安装了fuse-eap-installer-6.2.1.redhat-169.jar

当我第一次部署应用程序时,它可以工作,但是当我取消部署并重新启动 EAP 并再次部署它时,它会为 post 请求创建一个 id,以便下次应用程序启动失败并出现以下异常:

Caused by: org.apache.camel.FailedToStartRouteException: Failed to start route post1 because of duplicate id detected: post1. Please correct ids to be unique among all your routes.
at org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:1134) [camel-core-2.21.1.jar:2.21.1]
at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:3731) [camel-core-2.21.1.jar:2.21.1]
at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3445) [camel-core-2.21.1.jar:2.21.1]
at org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:209) [camel-core-2.21.1.jar:2.21.1]
at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3253) [camel-core-2.21.1.jar:2.21.1]
at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3249) [camel-core-2.21.1.jar:2.21.1]
at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3272) [camel-core-2.21.1.jar:2.21.1]
at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3249) [camel-core-2.21.1.jar:2.21.1]
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) [camel-core-2.21.1.jar:2.21.1]
at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3165) [camel-core-2.21.1.jar:2.21.1]
at org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:133) [camel-spring-2.21.1.jar:2.21.1]
... 28 more

你不应该在另一个应用程序服务器(如EAP/JBoss WildFly(中运行Spring Boot。

您收到的错误闻起来像取消部署过程没有完全取消部署所有资源。我知道野蝇骆驼最近有一个错误被修复,但它与使用 camel-cxf 和热部署有关。

所以我的第一个建议是不要在EAP中使用Spring Boot,而只在EAP上使用标准的JEE。请参阅widlfly-Camel文档和示例:https://github.com/wildfly-extras/wildfly-camel

最新更新