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