Hi Sergey,

This is CXF 3.0.1.

Regards
Kiren

On Sun, Aug 10, 2014 at 9:24 PM, Sergey Beryozkin <sberyoz...@gmail.com> wrote:
> Hi Kiren
>
> What CXF version is it ?
>
> Thanks, Sergey
>
> On 08/08/14 13:24, Kiren Pillay wrote:
>>
>> Hi Sergey,
>>
>> Thanks, I tried the code snippet you suggested. I have gotten further,
>> however it looks like I've uncovered a bug in the WebClient code.
>>
>> When using the local transport, an NPE is thrown from the
>> AbstractClient class (line 386)
>>
>> 381.       Map<String, List<Object>> protocolHeaders =
>>              CastUtils.cast((Map<?,
>> ?>)responseMessage.get(Message.PROTOCOL_HEADERS));
>>
>>          boolean splitHeaders =
>>
>> MessageUtils.isTrue(outMessage.getContextualProperty(HEADER_SPLIT_PROPERTY));
>> 386.        for (Map.Entry<String, List<Object>> entry :
>> protocolHeaders.entrySet()) {
>>
>>
>> This is because protocolHeaders evaluates to null in 381, causing the
>> NPE in 386. This is for local transport only, when using the http
>> transport, it works fine.
>>
>> Should I log a defect for this?
>>
>> Regards
>> Kiren
>>
>> On Thu, Aug 7, 2014 at 9:49 PM, Sergey Beryozkin <sberyoz...@gmail.com>
>> wrote:
>>>
>>> Hi,
>>>
>>> Can you have a look at JAXRSLocalTransportTest in systests/jaxrs ?
>>> It has this test:
>>>
>>> @Test
>>>      public void testWebClientDirectDispatch() throws Exception {
>>>          WebClient localClient = WebClient.create("local://books");
>>>          localClient.path("bookstore/books/123");
>>>          Book book = localClient.get(Book.class);
>>>          assertEquals(123L, book.getId());
>>>      }
>>>
>>> Can you please try the following, create WebClient directly in the code,
>>> without injecting it, and see if it can invoke correctly,just to check if
>>> it
>>> is an injection related issue or not.
>>>
>>> Cheers, Sergey
>>>
>>>
>>>
>>> On 07/08/14 19:36, Kiren Pillay wrote:
>>>>
>>>>
>>>> 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