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) > > > -- View this message in context: http://www.nabble.com/No-operation-found-in-the-CXF-client-tp23986700p24005954.html Sent from the Camel - Users mailing list archive at Nabble.com.
