Hi,

I'm using Apache Camel 2.20.1 and spring-boot-1.5.9.RELEASE, besides that I
see spring-context-4.3.13.RELEASE.jar and spring-beans-4.3.13.RELEASE.jar
printed in the error stack trace.
I don't get it, is it possible that I may be adding routes two times, once
through an explicit Camel Context and second time through an implicit
default Camel Context?
I import the configuration for the first by adding this import resource
annotation:


@SpringBootApplication
//load regular Spring XML file from the classpath that contains the Camel
XML DSL
@ImportResource({"classpath:spring/camel-context.xml"})

What files exactly do you want me to send you, that are critical to
understand my problem? I'd rather avoid sending the whole project.

Error starting ApplicationContext. To display the auto-configuration report
re-run your application with 'debug' enabled.
2018-03-23 15:50:33.398  INFO 10492 --- [           main]
ationConfigEmbeddedWebApplicationContext : Closing
org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@70f5f57d:
startup date [Fri Mar 23 15:50:32 CET 2018]; parent:
org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@29ba4338
2018-03-23 15:50:33.414 ERROR 10492 --- [           main]
o.s.boot.SpringApplication               : Application startup failed

org.apache.camel.RuntimeCamelException:
org.apache.camel.FailedToStartRouteException: Failed to start route
rest_getAccounts because of duplicate id detected: rest_getAccounts. Please
correct ids to be unique among all your routes.
at
org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1831)
~[camel-core-2.20.1.jar:2.20.1]
at
org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:136)
~[camel-spring-2.20.1.jar:2.20.1]
at
org.apache.camel.spring.CamelContextFactoryBean.start(CamelContextFactoryBean.java:369)
~[camel-spring-2.20.1.jar:2.20.1]
at
org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:416)
~[camel-spring-2.20.1.jar:2.20.1]
at
org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:94)
~[camel-spring-2.20.1.jar:2.20.1]
at
org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at
org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at
org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393)
~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:399)
~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)
~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at
org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:883)
~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at
org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:144)
~[spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)
~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at
org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
~[spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at
org.springframework.boot.actuate.autoconfigure.EndpointWebMvcAutoConfiguration.createChildManagementContext(EndpointWebMvcAutoConfiguration.java:193)
~[spring-boot-actuator-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at
org.springframework.boot.actuate.autoconfigure.EndpointWebMvcAutoConfiguration.afterSingletonsInstantiated(EndpointWebMvcAutoConfiguration.java:156)
~[spring-boot-actuator-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:781)
~[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at
org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
~[spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)
[spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
[spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
[spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)
[spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)
[spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at
hr.rba.digital.poc.accounts.AccountsApplication.main(AccountsApplication.java:14)
[classes/:na]
Caused by: org.apache.camel.FailedToStartRouteException: Failed to start
route rest_getAccounts because of duplicate id detected: rest_getAccounts.
Please correct ids to be unique among all your routes.
at
org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:1137)
~[camel-core-2.20.1.jar:2.20.1]
at
org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:3727)
~[camel-core-2.20.1.jar:2.20.1]
at
org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3441)
~[camel-core-2.20.1.jar:2.20.1]
at
org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:208)
~[camel-core-2.20.1.jar:2.20.1]
at
org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3249)
~[camel-core-2.20.1.jar:2.20.1]
at
org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3245)
~[camel-core-2.20.1.jar:2.20.1]
at
org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3268)
~[camel-core-2.20.1.jar:2.20.1]
at
org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3245)
~[camel-core-2.20.1.jar:2.20.1]
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
~[camel-core-2.20.1.jar:2.20.1]
at
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3168)
~[camel-core-2.20.1.jar:2.20.1]
at
org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:133)
~[camel-spring-2.20.1.jar:2.20.1]
... 25 common frames omitted

2018-03-23 15:50:33.414  INFO 10492 --- [           main]
ationConfigEmbeddedWebApplicationContext : Closing
org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@29ba4338:
startup date [Fri Mar 23 15:50:23 CET 2018]; root of context hierarchy
2018-03-23 15:50:33.414  INFO 10492 --- [           main]
o.s.j.e.a.AnnotationMBeanExporter        : Unregistering JMX-exposed beans
on shutdown

Best Regards

On Thu, Mar 22, 2018 at 3:07 PM, Claus Ibsen <claus.ib...@gmail.com> wrote:

> Hi
>
> What version of Camel and Spring Boot do you use?
> And can you maybe put your sample project on github or something so we
> can take a look there and try it out
>
> On Tue, Mar 20, 2018 at 6:59 PM,  <hrvoje.djurdje...@rba.hr> wrote:
> > Hi,
> >
> > if I try to build this code:
> >
> > package org.mycompany;
> >
> > import org.apache.camel.builder.RouteBuilder;
> > import org.apache.camel.model.rest.RestParamType;
> >
> >
> > public class MyFirstRouterBuilder extends RouteBuilder {
> >      @Override
> >     public void configure() throws Exception {
> >         try{
> >         restConfiguration().component("servlet");
> >             rest()
> >             .get("/accounts/{accountId}/transactions").id("r1")
> >                 .param()
> >                     .name("accountId")
> >                     .type(RestParamType.path)
> >                     .dataType("string")
> >                     .required(true)
> >                 .endParam()
> >                 .to("direct:rest1");
> >
> >                 from("direct:rest1")
> >                  .log("${body}");
> >
> >         }catch(Exception e){
> >
> >         }
> >      }
> > }
> >
> > I receive:
> >
> > org.apache.camel.spring.boot.CamelSpringBootInitializationException:
> > org.apache.camel.FailedToStartRouteException: Failed to start route r1
> > because of duplicate id detected: r1. Please correct ids to be unique
> > among all your routes.
> >
> > If I add .routeId("r2") or .id("r2") to the second route, immediately
> > after from("direct:rest1"), nothing changes.
> >
> > If I remove .id("r1") from the rest get operation, I receive:
> >
> > org.apache.camel.spring.boot.CamelSpringBootInitializationException:
> > org.apache.camel.FailedToStartRouteException: Failed to start route
> route1
> > because of duplicate id detected: route2. Please correct ids to be unique
> > among all your routes.
> >
> > How is this supposed to be written in order to avoid that error?
> > I inject that into camel context like this:
> >
> >     <bean class="org.mycompany.MyFirstRouterBuilder"
> id="myFirstRouter"/>
> >     <camelContext id="camel" useBreadcrumb="false" xmlns="
> > http://camel.apache.org/schema/spring";>
> >         <routeBuilder ref="myFirstRouter"/>
> >     </camelContext>
> > ______________________
> >
> > Napomena:
> > Ova elektronička poruka i njeni prilozi mogu sadržavati povjerljive
> i/ili povlaštene informacije, a namijenjena je isključivo za upotrebu
> naznačenog primatelja. Ako ste ovu poruku primili greškom, molimo Vas da o
> tome bez odlaganja obavijestite pošiljatelja, da uništite izvornu poruku i
> njene priloge i bez odlaganja poruku i njene priloge izbrišete iz Vašeg
> sistema. Neovlaštena uporaba, distribucija, otkrivanje, umnožavanje ili
> izmjena ove poruke je zabranjena. Raiffeisenbank Austria d.d. ne daje niti
> ne prihvaća pravno obvezujuće izjave putem elektroničkih poruka osim
> ukoliko drugačije nije izričito navedeno. Budući da komunikacija internetom
> nije zaštićena, Raiffeisenbank Austria d.d. ne prihvaća odgovornost za
> sadržaj ove poruke, kao ni za eventualnu štetu nastalu zbog zaraženosti ove
> poruke virusom ili drugim štetnim programom, te zbog eventualnih tehničkih
> problema prilikom dostave ove poruke.
> >
> > Disclaimer:
> > This e-mail message and any attachment may contain confidental and/or
> privileged information and is intended for use by the indicated addressee
> only. If you have received this message in error, please notify the sender
> immediately, destroy the original message and any attachment and delete
> this message and any attachment from your system. Unauthorized use,
> distribution, disclosure, reproduction, or alteration of this e-mail
> message is forbidden. Raiffeisenbank Austria d.d. neither makes nor accepts
> legally binding statements via e-mail unless otherwise stated. Considering
> that internet communication is not secured, Raiffeisenbank Austria d.d. is
> not responsible for the content of this message, for potential damage
> occured due to infection of this message with a virus or other malicious
> program, and for potential technical problems during delivery of this
> message.
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>

Reply via email to