Camel 1.6.1.0 Soap 1.1 endpoint already registered on address - CAMEL-1752
shanaghe Sep 25, 2009 5:31 AMHi,
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.<init>(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.<init>(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.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(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