Yeah, the behavior of the camel-1.6.1 is not right. Please feel free to create a JIRA with it. Since we have same unit tests with you use case in camel-1.x branch, and they look good, please submit a test case to reproduce this issue, so I can dig the issue sooner.
Thanks for you contribution on the wiki page. Willem ychawla wrote: > Hello All, > I solved the issue on Camel 1.6.0. The solution was to add a header called > operationNameSpace: > <setHeader > headerName="operationNameSpace"><constant>http://www.wisconsin.gov/wijis/gateway/PointerUploadService/</constant></setHeader> > > This did the trick. My assumption was that since this message went over a > JMS queue that the header called operationNameSpace was added and took on > the original consuming endpoint namespace of: > operationNameSpace=http://wijiscommons.org/ssaf/drop-off/ > > This might have been to support Soap over JMS. When I updated this > operation namespace, my service worked. I am concerned that it doesn't work > in 1.6.1. Should I file a JIRA about this? > > I also updated the CXF WIKI page: > http://cwiki.apache.org/confluence/display/CAMEL/CXF > > I added the sentence: When you are invoking the service endpoint, you can > set the operationName and operationNameSpace headers to explicitly state > which operation you are calling. > > Hope this is okay with Camel folks out there. > > Cheers, > Yogesh > > > > ychawla wrote: >> Hello All, >> I am trying to consume a web service as the origin of a camel route and >> later on down the line invoke a web service. I have this working by just >> consuming an xml message from a folder and invoking a web service, but >> when I try to connect the two web services I get an error: >> >> org.apache.camel.RuntimeCamelException: No operation found in the CXF >> client, the operation is >> {http://wijiscommons.org/ssaf/drop-off/}pointerUpload >> at >> org.apache.camel.component.cxf.CxfProducer.invokeClient(CxfProducer.java:266) >> at >> org.apache.camel.component.cxf.CxfProducer.process(CxfProducer.java:182) >> at >> org.apache.camel.component.cxf.CxfProducer.process(CxfProducer.java:155) >> at >> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:69) >> >> However, the service I am actually trying to call has a different >> namespace. Here are the beans: >> >> <!-- web service that I call --> >> <cxf:cxfEndpoint id="pointerUploadService" >> address="https://someURL:17444/xfire/PointerUpload" >> serviceClass="somepackage.PointerUploadService" >> endpointName="puService:PointerUploadService" >> >> xmlns:puService="http://www.wisconsin.gov/wijis/gateway/PointerUploadService/"/> >> >> <!-- web service that I consume --> >> <cxf:cxfEndpoint id="dropoffSynchronousWebService-endpoint" >> >> serviceClass="org.wijiscommons.ssaf.drop_off.DropOffSynchronousService" >> address="/DropOffSynchronousService" >> endpointName="s:DropOffSynchronousService" >> serviceName="s:DropOffSynchronousService" >> xmlns:s="http://wijiscommons.org/ssaf/drop-off/" >> > >> <cxf:inInterceptors> >> <ref bean="x509Interceptor"/> >> </cxf:inInterceptors> >> </cxf:cxfEndpoint> >> >> >> <http-conf:conduit name="*.http-conduit"> >> <http-conf:tlsClientParameters secureSocketProtocol="SSL"> >> <sec:keyManagers keyPassword="changeit"> >> <sec:keyStore type="JKS" password="changeit" >> file="something.key"/> >> </sec:keyManagers> >> <sec:trustManagers> >> <sec:keyStore type="JKS" password="changeit" >> file="/somepath/cacerts"/> >> </sec:trustManagers> >> <sec:cipherSuitesFilter> >> <sec:include>.*.*</sec:include> >> </sec:cipherSuitesFilter> >> </http-conf:tlsClientParameters> >> </http-conf:conduit> >> >> Here are the routes: >> <route> >> <from uri="cxf:bean:dropoffSynchronousWebService-endpoint" /> >> <!-- do a bunch of stuff --> >> <setHeader >> headerName="operationName"><constant>pointerUpload</constant></setHeader> >> <to uri="cxf:bean:pointerUploadService?dataFormat=POJO" /> >> </route> >> >> Note all of the above is in Camel 1.6.0 and CXF 2.1.3 >> >> When I upgrade to Camel 1.6.1 and CXF 2.2.2, I get a different error and >> am unable to start my server. It looks like it tries to create the same >> endpoint twice. Can anyone help me out with what I am doing wrong here? >> If I take out either CXF bean, everything works fine, but ideally I would >> like to hook these two services up through Camel. >> >> INFO: Creating Service >> {http://wijiscommons.org/ssaf/drop-off/}DropOffSynchronousService from >> class org.wijiscommons.ssaf.drop_off.DropOffSynchronousService >> Jun 11, 2009 1:41:01 PM org.apache.cxf.endpoint.ServerImpl initDestination >> INFO: Setting the server's publish address to be >> /DropOffSynchronousService >> Jun 11, 2009 1:41:02 PM >> org.apache.cxf.service.factory.ReflectionServiceFactoryBean >> buildServiceFromClass >> INFO: Creating Service >> {http://www.wisconsin.gov/wijis/gateway/PointerUploadService/}PointerUploadServiceService >> from class >> gov.wisconsin.wijis.gateway.pointeruploadservice.PointerUploadService >> 2009-06-11 13:41:03,141 INFO [org.apache.camel.impl.DefaultCamelContext] - >> Apache Camel 1.6.1 (CamelContext:camelContext) started >> 2009-06-11 13:41:03,255 INFO >> [org.springframework.web.context.ContextLoader] - Root >> WebApplicationContext: initialization completed in 9329 ms >> Jun 11, 2009 1:41:03 PM org.apache.cxf.transport.servlet.CXFServlet >> updateContext >> INFO: Load the bus with application context >> 2009-06-11 13:41:03,272 INFO >> [org.apache.cxf.bus.spring.BusApplicationContext] - Refreshing >> org.apache.cxf.bus.spring.busapplicationcont...@fe0ce1: display name >> [org.apache.cxf.bus.spring.busapplicationcont...@fe0ce1]; startup date >> [Thu Jun 11 13:41:03 CDT 2009]; parent: >> org.springframework.web.context.support.xmlwebapplicationcont...@1884174 >> Jun 11, 2009 1:41:03 PM org.apache.cxf.bus.spring.BusApplicationContext >> getConfigResources >> INFO: No cxf.xml configuration file detected, relying on defaults. >> 2009-06-11 13:41:03,290 INFO >> [org.apache.cxf.bus.spring.BusApplicationContext] - Bean factory for >> application context >> [org.apache.cxf.bus.spring.busapplicationcont...@fe0ce1]: >> org.springframework.beans.factory.support.defaultlistablebeanfact...@29d838 >> 2009-06-11 13:41:03,290 INFO >> [org.springframework.beans.factory.support.DefaultListableBeanFactory] - >> Pre-instantiating singletons in >> org.springframework.beans.factory.support.defaultlistablebeanfact...@29d838: >> defining beans []; parent: >> org.springframework.beans.factory.support.defaultlistablebeanfact...@1d03a4e >> Jun 11, 2009 1:41:03 PM >> org.apache.cxf.service.factory.ReflectionServiceFactoryBean >> buildServiceFromClass >> INFO: Creating Service >> {http://wijiscommons.org/ssaf/drop-off/}DropOffSynchronousService from >> class org.wijiscommons.ssaf.drop_off.DropOffSynchronousService >> Jun 11, 2009 1:41:03 PM org.apache.cxf.endpoint.ServerImpl initDestination >> INFO: Setting the server's publish address to be >> /DropOffSynchronousService >> Jun 11, 2009 1:41:03 PM org.apache.catalina.core.ApplicationContext log >> SEVERE: StandardWrapper.Throwable >> java.lang.RuntimeException: Soap 1.1 endpoint already registered on >> address /DropOffSynchronousService >> at >> org.apache.cxf.binding.soap.SoapBindingFactory.addListener(SoapBindingFactory.java:769) >> 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:96) >> at >> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:115) >> 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.cxf.transport.servlet.CXFServlet.updateContext(CXFServlet.java:121) >> at >> org.apache.cxf.transport.servlet.CXFServlet.loadSpringBus(CXFServlet.java:101) >> at >> org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:70) >> at >> org.apache.cxf.transport.servlet.AbstractCXFServlet.init(AbstractCXFServlet.java:79) >> at >> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172) >> at >> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992) >> at >> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058) >> at >> org.apache.catalina.core.StandardContext.start(StandardContext.java:4371) >> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) >> at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) >> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) >> at >> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) >> at >> org.apache.catalina.core.StandardService.start(StandardService.java:516) >> at >> org.apache.catalina.core.StandardServer.start(StandardServer.java:710) >> at org.apache.catalina.startup.Catalina.start(Catalina.java:578) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >> at java.lang.reflect.Method.invoke(Method.java:597) >> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) >> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) >> >> >> >
