I thought serviceClass with the actual Rest service implementation, sorry!:)
The following fixed this:

<jaxrs-client:client id="webClient" address="local://rsservice"
serviceClass="org.apache.cxf.jaxrs.client.WebClient" >


I managed to get further now, the client is calling the service via
the local transport, however I'm getting the following error.

" Local destination does not have a MessageObserver on address
local://rsservice/function/msisdnLessSim"

I upgraded to 3.0.1 now thinking it would solve the problem but its
still there:/

On Thu, Aug 7, 2014 at 3:19 PM, Sergey Beryozkin <sberyoz...@gmail.com> wrote:
> Hi Kiren
>
> I'm not sure yet I follow :-) but yes, jaxrs:client/@serviceClass can be set
> to a full WebClient name -> it will lead to a WebClient created.
> WebClient can work with a local transport too
>
> Cheers, Sergey
>
> On 07/08/14 16:16, Kiren Pillay wrote:
>>
>> Hi Sergey,
>>
>> Not sure if I'm the right track.
>>
>> What I need is to enable the following scenario.
>>
>> Client ----> JAXRSEntryService   -----+-------> JAXTargetResource1
>>                                                        |
>>                                                        |+------->
>> JAXTargetResource-n
>>
>> The Entry service will perform a table lookup of the target resource's
>> path based on an input parameter from the external client.  I would
>> then use the client in the JAXRSEntryService to call the  target
>> resources using the local transport. The target resources are all in
>> the same Spring container.
>>
>> Specifying the ServiceClass means I know the target resource I'm
>> calling upfront? In this case I don't know it. What's the best
>> approach to do this. Do I just create a webclient and use the local
>> transport in the URL?
>>
>> Regards
>> Kiren
>>
>> On Thu, Aug 7, 2014 at 2:18 PM, Sergey Beryozkin <sberyoz...@gmail.com>
>> wrote:
>>>
>>> Hi Kiren
>>> Looks like a jaxrs:client/@serviceClass is missing
>>>
>>> Cheers, Sergey
>>>
>>> On 07/08/14 14:25, Kiren Pillay wrote:
>>>>
>>>>
>>>> Hi Sergey,
>>>>
>>>> I'm trying to use the local transport as outlined in our email before.
>>>>
>>>> I can't seem to get the client injected into my Service bean (I'm using
>>>> 2.7.7).
>>>>
>>>>       <!-- local transport -->
>>>>       <jaxrs:server id="localRestContainer" address="local://rsservice"
>>>>           transportId="http://cxf.apache.org/transports/local";>
>>>>           <jaxrs:serviceBeans>
>>>>               <ref bean="msisdnLessSimService" />
>>>>           </jaxrs:serviceBeans>
>>>>           <jaxrs:providers>
>>>>               <ref bean="jaxbProvider" />
>>>>               <ref bean="pamsExceptionMapper" />
>>>>               <ref bean="pamsRuntimeExceptionMapper" />
>>>>           </jaxrs:providers>
>>>>
>>>>           <jaxrs:invoker>
>>>>               <bean
>>>> class="za.co.vodacom.pams.bs.WebServiceAuthorizationInvoker" />
>>>>           </jaxrs:invoker>
>>>>       </jaxrs:server>
>>>>
>>>>       <!-- Local transport -->
>>>>       <jaxrs:client id="webClient" address="local://rsservice" >
>>>>       </jaxrs:client>
>>>>       <bean id="pamsInfo"
>>>> class="za.co.vodacom.pams.bs.info.PAMSInfoServiceImpl">
>>>>           <property name="webClient" ref="webClient"></property>
>>>>       </bean>
>>>>
>>>> [ContextLoader]initWebApplicationContext(main) 308
>>>> org.springframework.beans.factory.BeanCreationException: Error
>>>> creating bean with name 'webClient': Instantiation of bean failed;
>>>> nested exception is
>>>> org.springframework.beans.factory.BeanDefinitionStoreException:
>>>> Factory method [public org.apache.cxf.jaxrs.client.Client
>>>> org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean.create()] threw
>>>> exception; nested exception is javax.ws.rs.NotFoundException
>>>>       at
>>>>
>>>> org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:581)
>>>>       at
>>>>
>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1015)
>>>>       at
>>>>
>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:911)
>>>>
>>>> On Sun, Nov 17, 2013 at 5:47 PM, Kiren Pillay <kirenpill...@gmail.com>
>>>> wrote:
>>>>>
>>>>>
>>>>> Okay, I was was supposed to use "#" in front of bean name.
>>>>>
>>>>> Thx
>>>>>
>>>>>
>>>>> On Sun, Nov 17, 2013 at 11:42 AM, Kiren Pillay <kirenpill...@gmail.com>
>>>>> wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>> 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
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>
>
>
> --
> Sergey Beryozkin
>
> Talend Community Coders
> http://coders.talend.com/
>
> Blog: http://sberyozkin.blogspot.com

Reply via email to