Comment appeler un service Web tiers en utilisant Apache camel en utilisant cxf componnet

J’ai parcouru l’exemple sur le site Web Apache camel et camel in action et tous deux se concentrent fortement sur l’exposition d’un service Web. Le seul exemple que j’ai trouvé en ligne ne fonctionne pas.

J’essaie d’accéder à un service Web tiers wsdl – http://www.webservicex.net/CurrencyConvertor.asmx?WSDL

Ce service a une opération / méthode qui calcule le taux de change. Le nom de l’opération est “ConversionRate”.

J’ai défini l’itinéraire comme ceci –

     here is a sample which processes the input files (leaving them in place - see the 'noop' flag) then performs content based routing on the message using XPath        

J’ai défini l’exemple de payload xml comme –

  1 10.00 2  

Je reçois cette erreur lorsque je lance cet exemple.

  Error occurred while running main from: org.apache.camel.spring.Main java.lang.reflect.InvocationTargetException 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:606) at org.apache.camel.maven.RunMojo$1.run(RunMojo.java:440) at java.lang.Thread.run(Thread.java:744) Caused by: org.apache.camel.FailedToCreateProducerException: Failed to create Producer for endpoint: Endpoint[cxf://http://www.webservicex.net/CurrencyConvertor.asmx?dataFormat=MESSAGE&portName=http%3A%2F%2Fwww.webserviceX.NET%2Ftns%3ACurrencyConvertorSoap&serviceName=CurrencyConvertor&wsdlURL=http%3A%2F%2Fwww.webservicex.net%2FCurrencyConvertor.asmx%3Fwsdl]. Reason: org.apache.cxf.service.factory.ServiceConstructionException: Could not find definition for service CurrencyConvertor. at org.apache.camel.impl.ProducerCache.doGetProducer(ProducerCache.java:395) at org.apache.camel.impl.ProducerCache.acquireProducer(ProducerCache.java:114) at org.apache.camel.impl.ProducerCache.startProducer(ProducerCache.java:145) at org.apache.camel.processor.SendProcessor.doStart(SendProcessor.java:175) at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:60) at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:62) at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:52) at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:73) at org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:78) at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:60) at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:62) at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:52) at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:73) at org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:78) at org.apache.camel.processor.interceptor.TraceInterceptor.doStart(TraceInterceptor.java:358) at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:60) at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:62) at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:52) at org.apache.camel.processor.WrapProcessor.doStart(WrapProcessor.java:52) at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:60) at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:62) at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:52) at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:73) at org.apache.camel.processor.RedeliveryErrorHandler.doStart(RedeliveryErrorHandler.java:1064) at org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:41) at org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:28) at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:62) at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:52) at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:73) at org.apache.camel.processor.interceptor.DefaultChannel.doStart(DefaultChannel.java:153) at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:60) at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:62) at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:52) at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:85) at org.apache.camel.processor.MulticastProcessor.doStart(MulticastProcessor.java:938) at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:60) at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:62) at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:52) at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:73) at org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:78) at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:60) at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:62) at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:52) at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:73) at org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:78) at org.apache.camel.processor.UnitOfWorkProcessor.doStart(UnitOfWorkProcessor.java:88) at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:60) at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:62) at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:52) at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:73) at org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:78) at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:60) at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:62) at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:52) at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:73) at org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:78) at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:60) at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:62) at org.apache.camel.impl.RouteService.startChildService(RouteService.java:322) at org.apache.camel.impl.RouteService.warmUp(RouteService.java:151) at org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:2000) at org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:1928) at org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:1716) at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1597) at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1453) at org.apache.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:179) at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:60) at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1421) at org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:228) at org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:118) at org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:283) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:97) at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:327) at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:941) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:475) at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:139) at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:93) at org.apache.camel.spring.Main.createDefaultApplicationContext(Main.java:186) at org.apache.camel.spring.Main.doStart(Main.java:140) at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:60) at org.apache.camel.main.MainSupport.run(MainSupport.java:141) at org.apache.camel.main.MainSupport.run(MainSupport.java:332) at org.apache.camel.spring.Main.main(Main.java:73) ... 6 more Caused by: org.apache.cxf.service.factory.ServiceConstructionException: Could not find definition for service CurrencyConvertor. at org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:139) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:412) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:534) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:248) at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:101) at org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:90) at org.apache.camel.component.cxf.CxfEndpoint.createClient(CxfEndpoint.java:527) at org.apache.camel.component.cxf.CxfProducer.doStart(CxfProducer.java:76) at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:60) at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:62) at org.apache.camel.impl.ProducerCache.doGetProducer(ProducerCache.java:393) ... 88 more *************************************. 

L’URI de destination semble être incorrect selon la documentation CXF .

Le format pour serviceName et portName doit être {namespace}name portName {namespace}name

Essayez avec: