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