Rest DSL с Springboot на Camel создает маршруты после перезапуска EAP throws Exception - PullRequest
0 голосов
/ 15 октября 2018

Когда я пытался сделать отдых DSL с проектом Springboot по ссылке здесь:

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 , и я пытаюсь развернуть файл WAR в EAP-6.4.0 с fuse-eap-installer-6.2.1.redhat-169.jar установленный на EAP.

Когда я развертываю приложение в первый раз, оно работает, но когда я отменяю развертывание и перезапускаю EAP, а затем снова развертываю его, происходит сбой, он создает идентификатор для пост-запроса, поэтому в следующий раз при запуске приложения происходит сбой сследующее исключение:

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

1 Ответ

0 голосов
/ 16 октября 2018

Вы не должны запускать Spring Boot на другом сервере приложений, таком как EAP / JBoss WildFly.

Ошибка, которую вы получаете, пахнет процедурой отмены развертывания, которая не полностью удаляет все ресурсы.Я знаю, что недавно была исправлена ​​ошибка в wildfly-camel, но она была связана с использованием camel-cxf и горячим развертыванием.

Поэтому мой первый совет - не использовать Spring Boot внутри EAP и простоиспользуйте стандартный JEE на EAP.См. Документацию и примеры от widlfly-camel: https://github.com/wildfly-extras/wildfly-camel

...