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

Reply via email to