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 >>>>>> >>>>>> >>>>>> >>>>>> >>>> >>>> >>