[ 
https://issues.apache.org/jira/browse/CAMEL-14969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17092955#comment-17092955
 ] 

Nenad Nesovanovic commented on CAMEL-14969:
-------------------------------------------

My assessment is that for the REST endpoint Camel Spring is automatically 
creating producer and consumer route with the same name and as REST XML 
discovered resources are discovered first, then Camel Context end up creating 
them again from the routes definition created during the XML rest import.

If Camel Context XML is importing the same routes through the restContextRef 
tag, then this issue does not occur, as rest definitions and endpoints are 
created after the Camel Context is initialised.

Happy to provide more details if needed, but you should first go through the 
attached logs and images and please pay attention to the variable watch list on 
the images and debug stack trace that points out to the code lines and variable 
values to prove that route definitions list ends up having two route 
definitions for the single XML entry.

> Failed to start route [A] because of duplicate id detected: [B]
> ---------------------------------------------------------------
>
>                 Key: CAMEL-14969
>                 URL: https://issues.apache.org/jira/browse/CAMEL-14969
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-spring-boot
>    Affects Versions: 3.2.0
>            Reporter: Nenad Nesovanovic
>            Priority: Major
>         Attachments: eclipse1_compare_by_ref.PNG, 
> eclipse2_causes_duplicate.PNG, eclipse3-two-routes.PNG, 
> eclipse4-comparison-conflict.PNG, eclipse5-comparison-conflict.PNG, 
> trace_log1.zip, trace_log2.zip
>
>
> When loading rest definitions via "xml-rests" path defined in property
> {quote}{color:#403294}camel.springboot.xml-rests = 
> classpath:folder-camel/folder-rest/*.xml{color}
> {quote}
> The camel 3.2 fails with error 
> {quote}{color:#de350b}Failed to start route first-test-get-id because of 
> duplicate id detected: first-test-to-id. Please correct ids to be unique 
> among all your routes.{color}
> {quote}
> My rest XML file is defined as
> {{<?xml version="1.0" encoding="UTF-8"?><?xml version="1.0" 
> encoding="UTF-8"?>}}
> {{<rests xmlns="http://camel.apache.org/schema/spring"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"}}
> {{ xsi:schemaLocation="}}
> {{    http://camel.apache.org/schema/spring 
> https://camel.apache.org/schema/spring/camel-spring-3.2.0.xsd}}
> {{    ">}}
> {{ <rest id="id1" path="/test">}}
> {{ <get id="id2" uri="/folderuri">}}
> {color:#de350b}{{ <to id="id3" uri="log:test-nexus-rest" />}}{color}
> {{ </get>}}
> {{ </rest>}}
> {{</rests>}}
> However, when I envelope TO tag in the ROUTE tag, the issue gets resolved
> {{<rest id="id1" path="/test">}}
> {{<get id="id2" uri="/folderuri">}}
> {{{color:#4c9aff}<route id="id4">{color}}}
> {{{color:#de350b}<to id="id3" uri="log:test-nexus-rest" />{color}}}
> {{{color:#4c9aff}</route>{color}}}
> {{</get>}}
> {{</rest>}}
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to