Thanks for your help Sergey!

Cheers.

On Tue, Aug 12, 2014 at 9:49 PM, Sergey Beryozkin <sberyoz...@gmail.com> wrote:
> Hi Kiren
>
> Sounds good, thanks for making it work
>
> Cheers, Sergey
>
> On 12/08/14 20:39, Kiren Pillay wrote:
>>
>> Hi Sergey,
>>
>> I have managed to get the local transport working. It is working as
>> specified in the tests:)
>>
>>   I think the missing MessageObserver error is caused by a missing
>> target resource bean in my jaxrs:server config.
>>
>> Regards
>> Kiren
>>
>>
>> On Mon, Aug 11, 2014 at 12:18 PM, Kiren Pillay <kirenpill...@gmail.com>
>> wrote:
>>>
>>> Its probably something specific with my setup.  I will create the
>>> test-case for it.
>>>
>>> Regards
>>> Kiren
>>>
>>> On Mon, Aug 11, 2014 at 11:28 AM, Sergey Beryozkin <sberyoz...@gmail.com>
>>> wrote:
>>>>
>>>> Hi Kiren
>>>>
>>>> Interesting, I wonder why it's not happening with
>>>> JAXRSLocalTransportTest.
>>>> Can you please update JAXRSLocalTransportTest with a failing test and
>>>> create
>>>> a patch ?
>>>> Thanks, Sergey
>>>>
>>>> On 11/08/14 11:20, Kiren Pillay wrote:
>>>>>
>>>>>
>>>>> 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