1 Reply Latest reply on Sep 25, 2009 6:23 AM by davsclaus

    Camel 1.6.1.0 Soap 1.1 endpoint already registered on address - CAMEL-1752

    shanaghe

      Hi,

       

      I came across a camel issue which took a bit of investigation to solve so I want to share the findings and ask the experts' opinions on the solution.

       

      I have a route which aggregates a set of SOAP responses from CXF endpoints to a CXF endpoint.  Java DSL is something like:

          from("cxf:bean:aggWs").multicast(new AggStrategy, true).to(new String[]{"cxf:a...", "cxf:b..."});

      where 'aggWs' is a spring bean (<cxf:cxfEndpoint>).

       

      With camel 1.6.1 (and 1.6.1.0-fuse), this result in the error "Soap 1.1 endpoint already registered on address http://localhost:8989/...", which seems to happen because of a startup loop caused by a bug already fixed in 1.6.1.2 (CAMEL-1752).  Full stack trace is at the end.

       

      The solution was to upgrade to 1.6.1.2-fuse.  (It was fixed in 1.6.1.1-fuse).  I'm using Fuse ESB, so to get around this in the ESB, I did an osgi/uninstall of camel-core, camel-osgi, camel-spring and camel-cxf followed by

       

      osgi/install mvn:org.apache.camel/camel-core/1.6.1.2-fuse

      osgi/install mvn:org.apache.camel/camel-osgi/1.6.1.2-fuse

      osgi/install mvn:org.apache.camel/camel-spring/1.6.1.2-fuse

      osgi/install mvn:org.apache.camel/camel-cxf/1.6.1.2-fuse

       

      I started all the bundles, and after a necessary servicemix restart, the route was working again.

       

      I'm wondering now if there are any potential consequences of upgrading the camel version within fuse.  Is anything else going to break?  Is there a sound way of capturing changes like this so that I can propagate the same changes to other servers, e.g. installation of production ESB?  Should I write a features XML for the upgraded bundles?

       

      -Eoin

       

      Full stack trace:

       

      SEVERE: Failed: java.lang.RuntimeException: Soap 1.1 endpoint already registered on address http://localhost:8989/testWs

      java.lang.RuntimeException: Soap 1.1 endpoint already registered on address http://localhost:8989/testWs

      at org.apache.cxf.binding.soap.SoapBindingFactory.addListener(SoapBindingFactory.java:792)

      at org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:122)

      at org.apache.camel.component.cxf.CxfConsumer.doStart(CxfConsumer.java:110)

      at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:53)

      at org.apache.camel.impl.DefaultCamelContext.addService(DefaultCamelContext.java:427)

      at org.apache.camel.impl.DefaultCamelContext.startRoutes(DefaultCamelContext.java:694)

      at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:611)

      at org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:95)

      at org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:114)

      at org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:326)

      at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78)

      at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)

      at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76)

      at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274)

      at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:276)

      at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736)

      at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:383)

      at org.apache.cxf.bus.spring.BusApplicationContext.&lt;init&gt;(BusApplicationContext.java:91)

      at org.apache.cxf.bus.spring.SpringBusFactory.createApplicationContext(SpringBusFactory.java:102)

      at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:93)

      at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:86)

      at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:64)

      at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:53)

      at org.apache.camel.component.cxf.CxfProducer.createClientFromClientFactoryBean(CxfProducer.java:104)

      at org.apache.camel.component.cxf.CxfProducer.&lt;init&gt;(CxfProducer.java:73)

      at org.apache.camel.component.cxf.CxfEndpoint.createProducer(CxfEndpoint.java:93)

      at org.apache.camel.processor.SendProcessor.doStart(SendProcessor.java:93)

      at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:53)

      at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:64)

      at org.apache.camel.processor.MulticastProcessor.doStart(MulticastProcessor.java:252)

      at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:53)

      at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:42)

      at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:53)

      at org.apache.camel.processor.DelegateProcessor.doStart(DelegateProcessor.java:68)

      at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:53)

      at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:42)

      at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:53)

      at org.apache.camel.processor.DelegateProcessor.doStart(DelegateProcessor.java:68)

      at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:53)

      at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:42)

      at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:53)

      at org.apache.camel.processor.DeadLetterChannel.doStart(DeadLetterChannel.java:461)

      at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:53)

      at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:42)

      at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:53)

      at org.apache.camel.processor.DelegateProcessor.doStart(DelegateProcessor.java:68)

      at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:53)

      at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:42)

      at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:53)

      at org.apache.camel.processor.DelegateProcessor.doStart(DelegateProcessor.java:68)

      at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:53)

      at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:42)

      at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:53)

      at org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:54)

      at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:53)

      at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:42)

      at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:53)

      at org.apache.camel.impl.DefaultConsumer.doStart(DefaultConsumer.java:85)

      at org.apache.camel.component.cxf.CxfConsumer.doStart(CxfConsumer.java:109)

      at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:53)

      at org.apache.camel.impl.DefaultCamelContext.addService(DefaultCamelContext.java:427)

      at org.apache.camel.impl.DefaultCamelContext.startRoutes(DefaultCamelContext.java:694)

      at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:611)

      at org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:95)

      at org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:114)

      at org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:326)

      at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78)

      at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)

      at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76)

      at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274)

      at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736)

      at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:383)

      at org.springframework.context.support.ClassPathXmlApplicationContext.&lt;init&gt;(ClassPathXmlApplicationContext.java:139)

      at org.springframework.context.support.ClassPathXmlApplicationContext.&lt;init&gt;(ClassPathXmlApplicationContext.java:93)

      at org.apache.camel.spring.Main.createDefaultApplicationContext(Main.java:231)

      at org.apache.camel.spring.Main.doStart(Main.java:185)

      at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:53)

      at org.apache.camel.util.MainSupport.run(MainSupport.java:121)

      at org.apache.camel.util.MainSupport.run(MainSupport.java:299)

      at org.apache.camel.spring.Main.main(Main.java:97)

       

      Edited by: shanaghe on Sep 25, 2009 9:31 AM