Hi Sergei, I'm trying to use the bean reference for the implementing class but am getting a classNotFoundError (CXF2.7.7). Is this a bug or is there a special way to reference the bean. Also, wouldn't it be better to have a bean-ref attribute rather than the implementor attribute?
<bean id="soapMmsBilling" class="za.co.vodacom.pams.soap.SoapMmsBillingRequestImpl"> <!-- Inject local client <property name="localRestClient" ref="localHttpClient"/>--> </bean> <jaxws:endpoint id="MmsBillingSoapWebservice" serviceName="customer:OpenWaveMmsBilling" implementor="soapMmsBilling" xmlns:customer="http://www.openwave.com/protocols/oip/"> <jaxws:features> <bean class="org.apache.cxf.feature.LoggingFeature" /> </jaxws:features> </jaxws:endpoint> org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'MmsBillingSoapWebservice': Cannot create inner bean '(inner bean)' of type [soapMmsBilling] while setting constructor argument; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [soapMmsBilling] for bean with name '(inner bean)#1' defined in null; nested exception is java.lang.ClassNotFoundException: soapMmsBilling at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:281) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:125) at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:616) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1035) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:939) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:623) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1322) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065) at org.apache.catalina.core.StandardHost.start(StandardHost.java:862) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) at org.apache.catalina.core.StandardService.start(StandardService.java:525) at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 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:601) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [soapMmsBilling] for bean with name '(inner bean)#1' defined in null; nested exception is java.lang.ClassNotFoundException: soapMmsBilling at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1262) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:433) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:270) ... 41 more Caused by: java.lang.ClassNotFoundException: soapMmsBilling at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) at org.springframework.util.ClassUtils.forName(ClassUtils.java:258) at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:417) at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1283) at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1254) On Thu, Nov 14, 2013 at 12:54 PM, Kiren Pillay <kirenpill...@gmail.com>wrote: > Thanks Sergey, will give it a try! > > Regards > Kiren > > > On Thu, Nov 14, 2013 at 12:36 PM, Sergey Beryozkin > <sberyoz...@gmail.com>wrote: > >> Hi Kiren >> >> Add one more jaxrs:server endpoint with a local transport address, >> sharing the same JAX-RS bean with the HTTP-aware jaxrs:endpoint, and then >> inject a jaxrs:client or WebClient initialized with the local transport >> address into your JAX-WS server, example, >> >> <jaxrs:server address="/http"> >> <jaxrs:serviceBeans> >> <ref bean="service"/> >> </jaxrs:serviceBeans> >> </jaxrs:server> >> >> <jaxrs:server address="local://rsservice" >> transportId="http://cxf.apache.org/transports/local"> >> <jaxrs:serviceBeans> >> <ref bean="service"/> >> </jaxrs:serviceBeans> >> </jaxrs:server> >> >> <jaxrs:client address="local://rsservice"> >> </jaxrs:client> >> >> and inject this client (or WebClient) into the soap server >> >> This should do >> >> Cheers, Sergey >> >> >> On 13/11/13 23:10, Kiren Pillay wrote: >> >>> Hi Sergey, >>> >>> I am trying to have a SOAP service calling a RESTFUL service, both >>> deployed >>> within the same CXF servlet. >>> >>> What is the best or most efficient way to invoke the RestFul service from >>> the SOAP service?. I want the RestFul service to behave as if its being >>> called from an external source so that the invokers etc are all called as >>> normal. >>> >>> I'm trying the following call but it doesn't seem to be invoking the >>> service. Both the SOAP and REST service are within the same Servlet >>> Context. >>> >>> WebClient wc = WebClient.create( >>> >>> " >>> http://localhost:8080/deploy-mms-billing/rest/function/mmsBilling", >>> "test", "test", null); >>> >>> Regards >>> Kiren >>> >>> >> >> -- >> Sergey Beryozkin >> >> Talend Community Coders >> http://coders.talend.com/ >> >> Blog: http://sberyozkin.blogspot.com >> > >