You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Olaf <om...@gmail.com> on 2013/10/22 21:56:39 UTC

error while testing: duplicate id detected

Hello,

I have a simple route, which works fine

            from("file://data/inbox?noop=true")
                .beanRef("someProcessor")
                .process(new SomeOtherProcessor()).id("otherProcessor")
                .to("log:foo").id("loggingFoo");

But testing doesn't work. As one can see, I don't have duplicate id's.

org.apache.camel.FailedToStartRouteException: Failed to start route route1
because of duplicate id detected: otherProcessor. Please correct ids to be
unique among all your routes.
	at
org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:759)
	at
org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:1914)
	at
org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1670)
	at
org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1544)
	at
org.apache.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:179)
	at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
	at
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1512)
	at
org.apache.camel.test.junit4.CamelTestSupport.startCamelContext(CamelTestSupport.java:476)
	at
org.apache.camel.test.junit4.CamelTestSupport.doSetUp(CamelTestSupport.java:310)
	at
org.apache.camel.test.junit4.CamelTestSupport.setUp(CamelTestSupport.java:216)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
	at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
	at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
	at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
	at org.junit.rules.RunRules.evaluate(RunRules.java:20)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
	at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
	at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
	at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
	at
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53)
	at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
	at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at
org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
	at
org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
	at
org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175)
	at
org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68)
###############################################################

public class AppTest extends CamelSpringTestSupport {

    
    @Override
    public String isMockEndpoints() {return "*";}

    @Test()
    public void testAppRoute() throws Exception {
        MockEndpoint to = getMockEndpoint("mock:log:foo");
        to.setExpectedMessageCount(1);
        template.sendBodyAndHeader("file://data/inbox", "test",
Exchange.FILE_NAME, "test.txt");
        Thread.sleep(2000);        
        to.assertIsSatisfied();
    }

    @Override
    protected RouteBuilder createRouteBuilder() throws Exception {
        return new App.AppRoute();
    }

    @Override
    protected AbstractApplicationContext createApplicationContext() {
        return new
ClassPathXmlApplicationContext("META-INF/spring/camel-context.xml");
    }

}

###########################

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
       http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd">

    <camelContext xmlns="http://camel.apache.org/schema/spring">
        <routeBuilder ref="appRoute" />
    </camelContext>
    <bean id="appRoute" class="com.cameltest.mavenproject1.App$AppRoute" />
    <bean id="someProcessor"
class="com.cameltest.mavenproject1.SomeProcessor" />
 
</beans>




--
View this message in context: http://camel.465427.n5.nabble.com/error-while-testing-duplicate-id-detected-tp5742041.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: error while testing: duplicate id detected

Posted by Olaf <om...@gmail.com>.
Oh, no... 
Thank you very much!



--
View this message in context: http://camel.465427.n5.nabble.com/error-while-testing-duplicate-id-detected-tp5742041p5742102.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: error while testing: duplicate id detected

Posted by som <so...@yahoo.com>.
I recently upgraded from 2.10.3 to 2.14.1, I am getting the below error

I have two config files- DTSSpring-config.xml and camel-config.xml

I found there are 10 beans present in above both, I deleted the file
DTSSpring-config.xml, Built the Web project and published to the tomcat7 in
Eclipse and out side of the eclipse in standalone tomcat - Still I see the
duplicate Id error below. 

Error trace
-------------
org.apache.camel.FailedToStartRouteException: Failed to start route
DTSSpring-attached-email-handler because of duplicate id detected:
DTSSpring-attached-email-handler. Please correct ids to be unique among all
your routes.
        at
org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:794)
        at
org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:2174)
        at
org.apache.camel.impl.DefaultCamelContext.addRouteDefinitions(DefaultCamelContext.java:739)
        at com.wellsfargo.first.utility.RouteLoader.loadRoute(Unknown
Source)



My route extract is as below:
---------------------------------
<route id="DTS-Spring-upload-file-cron-route" trace="true">
	  <setHeader
headerName="BatchDir"><constant>/dtsspring/batch/</constant></setHeader>
	  
		<from
uri="quartz://report?cron=0+0+8,12,16+*+*+?delete=true&amp;exclusiveReadLockStrategy=#ClusteredLockStrategy&readLockTimeout=1&filter=#CSVFilter&autoCreate=true&maxMessagesPerPoll=100"/> 
	    <setHeader
headerName="CamelFileAbsolutePath"><constant>/dtsspring/staging/test.csv</constant></setHeader>
		<doTry>
	    <process ref="DTSSpringCSVProcessor"/>
		<process ref="ExtractTrailingETL" />	
			<doCatch>
				<exception>java.lang.Exception</exception>
			</doCatch>
		</doTry>
		



Please let me know any this else needed for your analysis.
Som	



--
View this message in context: http://camel.465427.n5.nabble.com/error-while-testing-duplicate-id-detected-tp5742041p5762071.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: error while testing: duplicate id detected

Posted by Claus Ibsen <cl...@gmail.com>.
Hi

You add the routes 2 times with both in the spring XML file using
<routeBuilderRef> and

   @Override
    protected RouteBuilder createRouteBuilder() throws Exception {
        return new App.AppRoute();
    }




On Tue, Oct 22, 2013 at 9:56 PM, Olaf <om...@gmail.com> wrote:
> Hello,
>
> I have a simple route, which works fine
>
>             from("file://data/inbox?noop=true")
>                 .beanRef("someProcessor")
>                 .process(new SomeOtherProcessor()).id("otherProcessor")
>                 .to("log:foo").id("loggingFoo");
>
> But testing doesn't work. As one can see, I don't have duplicate id's.
>
> org.apache.camel.FailedToStartRouteException: Failed to start route route1
> because of duplicate id detected: otherProcessor. Please correct ids to be
> unique among all your routes.
>         at
> org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:759)
>         at
> org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:1914)
>         at
> org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1670)
>         at
> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1544)
>         at
> org.apache.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:179)
>         at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
>         at
> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1512)
>         at
> org.apache.camel.test.junit4.CamelTestSupport.startCamelContext(CamelTestSupport.java:476)
>         at
> org.apache.camel.test.junit4.CamelTestSupport.doSetUp(CamelTestSupport.java:310)
>         at
> org.apache.camel.test.junit4.CamelTestSupport.setUp(CamelTestSupport.java:216)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:601)
>         at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
>         at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>         at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
>         at
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
>         at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>         at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
>         at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>         at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
>         at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
>         at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
>         at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
>         at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
>         at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
>         at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
>         at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
>         at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>         at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
>         at
> org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53)
>         at
> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
>         at
> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:601)
>         at
> org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
>         at
> org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
>         at
> org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175)
>         at
> org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107)
>         at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68)
> ###############################################################
>
> public class AppTest extends CamelSpringTestSupport {
>
>
>     @Override
>     public String isMockEndpoints() {return "*";}
>
>     @Test()
>     public void testAppRoute() throws Exception {
>         MockEndpoint to = getMockEndpoint("mock:log:foo");
>         to.setExpectedMessageCount(1);
>         template.sendBodyAndHeader("file://data/inbox", "test",
> Exchange.FILE_NAME, "test.txt");
>         Thread.sleep(2000);
>         to.assertIsSatisfied();
>     }
>
>     @Override
>     protected RouteBuilder createRouteBuilder() throws Exception {
>         return new App.AppRoute();
>     }
>
>     @Override
>     protected AbstractApplicationContext createApplicationContext() {
>         return new
> ClassPathXmlApplicationContext("META-INF/spring/camel-context.xml");
>     }
>
> }
>
> ###########################
>
> <beans xmlns="http://www.springframework.org/schema/beans"
>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>        xsi:schemaLocation="
>        http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans.xsd
>        http://camel.apache.org/schema/spring
> http://camel.apache.org/schema/spring/camel-spring.xsd">
>
>     <camelContext xmlns="http://camel.apache.org/schema/spring">
>         <routeBuilder ref="appRoute" />
>     </camelContext>
>     <bean id="appRoute" class="com.cameltest.mavenproject1.App$AppRoute" />
>     <bean id="someProcessor"
> class="com.cameltest.mavenproject1.SomeProcessor" />
>
> </beans>
>
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/error-while-testing-duplicate-id-detected-tp5742041.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cibsen@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen