Hi
What exactly does not work ?
1.<jaxrs:serviceBeans>
* <ref bean="customerBean" />*
</jaxrs:serviceBeans>
refers to the singleton bean. Beans declared inside/linked from
jaxrs:serviceBeans can be singletons only, it is a bit confusing probably,
but this is the limitation.
2. beans = "customerBean2 customerBean3" refer to customerBean2 &
customerBean3 beans. Using the 'beans' attribute is a shortcut, it is
equivalent to using
<jaxrs:serviceFactories>
<ref bean="sfactory1" />
<ref bean="sfactory2" />
</jaxrs:serviceFactories>
where each factory bean refers to a bean it manages (customerBean4 &
customerBean5).
So one can use either jaxrs:serviceBeans or jaxrs:serviceFactories ( often
equivalent to jaxrs:server/@beans )
Using Spring AOP is another option.
cheers, Sergey
On Mon, Jun 21, 2010 at 7:02 AM, Balaji Sankar Chopparapu <
[email protected]> wrote:
> Thanks Sergey for you quick reply. The "beanNames"attribute doenst work on
> Service Beans. Is this by design. Even in the example the
> "customerBean2,customerBean3" are not referred as service beans. Please
> suggest
>
>
> <beans>
> <jaxrs:server id="customerService" address="/service1"
> beanNames="customerBean2 customerBean3">
> <jaxrs:serviceBeans>
> * <ref bean="customerBean" />*
> </jaxrs:serviceBeans>
> <jaxrs:serviceFactories>
> <ref bean="sfactory1" />
> <ref bean="sfactory2" />
> </jaxrs:serviceFactories>
> </jaxrs:server>
> * <bean id="customerBean" class="demo.jaxrs.server.CustomerService" />
> <bean id="customerBean2" class="demo.jaxrs.server.CustomerService2"
> scope="prototype"/>
> <bean id="customerBean3" class="demo.jaxrs.server.CustomerService3"
> scope="prototype"/>
> *
> <bean id="sfactory1"
> class="org.apache.cxf.jaxrs.spring.SpringResourceFactory">
> <property name="beanName" value="customerBean4"/>
> </bean>
> <bean id="sfactory2"
> class="org.apache.cxf.jaxrs.spring.SpringResourceFactory">
> <property name="beanName" value="customerBean5"/>
> </bean>
>
> <bean id="customerBean4" class="demo.jaxrs.server.CustomerService4"
> scope="prototype"/>
> <bean id="customerBean5" class="demo.jaxrs.server.CustomerService5"
> scope="prototype"/>
> </beans>
>
>
>
> On Thu, Jun 17, 2010 at 7:53 PM, Sergey Beryozkin <[email protected]>wrote:
>
>> Hi
>>
>> JAXRS module also ships prototypes aware factories :
>> http://cxf.apache.org/docs/jax-rs.html#JAX-RS-Lifecyclemanagement
>>
>> cheers, Sergey
>>
>>
>> On Thu, Jun 17, 2010 at 2:57 PM, Daniel Kulp <[email protected]> wrote:
>>
>>>
>>>
>>> I believe the easiest way to do it is to just use the Spring AOP stuff
>>> and set
>>> the bookService bean to be scope=session. Spring will handle the rest.
>>>
>>> Dan
>>>
>>>
>>> On Thursday 17 June 2010 6:19:21 am Balaji Sankar Chopparapu wrote:
>>> > Hi,
>>> >
>>> >
>>> >
>>> > We Observed Servicebeans created by
>>> > "org.apache.cxf.transport.servlet.CXFServlet” is always singleton. How
>>> can
>>> > I change their scope to prototype or in best case HTTP Session Scope?
>>> > Please Suggest.
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > *WEB.xml:*
>>> >
>>> > <servlet>
>>> >
>>> > <servlet-name>CXFServlet</servlet-name>
>>> >
>>> > <display-name>CXF Servlet</display-name>
>>> >
>>> > <servlet-class>
>>> >
>>> > org.apache.cxf.transport.servlet.CXFServlet
>>> >
>>> > </servlet-class>
>>> >
>>> > <load-on-startup>1</load-on-startup>
>>> >
>>> > </servlet>
>>> >
>>> > *Bean Definitions:*
>>> >
>>> > <jaxrs:server id="restServer" address="/services/">
>>> >
>>> >
>>> >
>>> > <jaxrs:serviceBeans>
>>> >
>>> > <ref bean="bookService"/>
>>> >
>>> > </jaxrs:serviceBeans>
>>> >
>>> >
>>> > Thanks in Advance,
>>> >
>>> > Balaji
>>>
>>> --
>>> Daniel Kulp
>>> [email protected]
>>> http://dankulp.com/blog
>>>
>>
>>
>