cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sergey Beryozkin <sberyoz...@gmail.com>
Subject Re: SOAP calling REST service
Date Mon, 11 Aug 2014 09:28:14 GMT
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 <sberyozkin@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 <sberyozkin@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 <sberyozkin@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
>>>>>>> <sberyozkin@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
>>>>>>>>> <kirenpillay1@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
>>>>>>>>>> <kirenpillay1@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
>>>>>>>>>>> <kirenpillay1@gmail.com>
>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks Sergey, will give it a try!
>>>>>>>>>>>>
>>>>>>>>>>>> Regards
>>>>>>>>>>>> Kiren
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Thu, Nov 14, 2013 at 12:36 PM, Sergey
Beryozkin
>>>>>>>>>>>> <sberyozkin@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
>>>>
>>>>
>>>>
>>
>>


Mime
View raw message