You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Sergey Beryozkin <se...@iona.com> on 2009/10/02 23:01:14 UTC
Re: Thread Safety
CXF JAXRS now supports spring prototypes
http://cxf.apache.org/docs/jax-rs.html#JAX-RS-Resourcelifecycles
http://cxf.apache.org/docs/jax-rs.html#JAX-RS-Lifecyclemanagement
I reckon it should be possible to create a utility factory the JAXRS runtime
uses for JAXWS too which will implement a CXF Factory interface...
cheers, Sergey
Nathaniel Auvil wrote:
>
> My understanding is they do not support Spring Prototype beans....so your
> resource classes are Singletons. Therefore any members are most likely
> not
> Threadsafe unless they are using ThreadLocal or some such trickery under
> the
> covers.
>
>
> On Tue, Aug 25, 2009 at 8:38 AM, Nicola D'Elia
> <ni...@gmail.com>wrote:
>
>> Hi,
>> i have a similar question.
>>
>> I have a spring bean exposed as web service: it is a singleton and gets
>> the
>> context injected to work with the http session:
>>
>> ...
>> @Resource
>> private WebServiceContext context;
>>
>> public String login(String username) {
>> String challenge = auth.login(username);
>> if (challenge != null) {
>> ((HttpServletRequest)
>>
>> context.getMessageContext().get(HTTP_REQUEST)).getSession().setAttribute(USERNAME,
>> username);
>> ...
>>
>>
>> Is it safe or i should turn the bean into a prototype ?
>>
>>
>>
>> Thanks,
>> Nicola
>>
>>
>>
>>
>> On Fri, Aug 21, 2009 at 3:00 PM, Sergey Beryozkin <sberyozk@progress.com
>> >wrote:
>>
>> > Hi
>> >
>> > I thought you were asking about fileds like
>> >
>> > @Context
>> > private HttpHeaders headers;
>> >
>> > such fields are indeed thred-safe even with singleton resource classes,
>> it
>> > is thread-safe proxies which are injected in such cases.
>> >
>> > Now, as far as supporting Spring prototypes is concerned I haven't got
>> to
>> > fixing this JIRA yet :
>> >
>> > http://issues.apache.org/jira/browse/CXF-2197
>> >
>> > You might want to try using CXFNonSpringJaxrsServlet and set a
>> jaxrs.scope
>> > parameter to 'prototype' or register a JAXRS Application impl - that is
>> the
>> > only way at the moment to work with prototypes (programmatic config is
>> > supported too)
>> >
>> > cheers, Sergey
>> >
>> > ----- Original Message ----- From: "Nathaniel Auvil" <
>> > nathaniel.auvil@gmail.com>
>> > To: <us...@cxf.apache.org>
>> > Sent: Friday, August 21, 2009 1:15 PM
>> > Subject: Re: Thread Safety
>> >
>> >
>> >
>> > I thought a singleton was not threadsafe by default, such as a Java
>> >> Servlet? I did a more thorough reading of the CXF docs and saw the
>> Spring
>> >> configured Resource classes are Singletons and not Prototype Beans.
>> So
>> in
>> >> other words, each request will share the same instance of my
>> >> AccountService
>> >> Resource class. If i have a member variable: private Account account,
>> >> this
>> >> will be shared by all requests and get overwritten by each request.
>> >> Right?
>> >>
>> >>
>> >>
>> >>
>> >> On Fri, Aug 21, 2009 at 6:19 AM, Sergey Beryozkin <
>> sberyozk@progress.com
>> >> >wrote:
>> >>
>> >> Hi
>> >>>
>> >>> ----- Original Message ----- From: "Nathaniel Auvil" <
>> >>> nathaniel.auvil@gmail.com>
>> >>> To: <us...@cxf.apache.org>
>> >>> Sent: Thursday, August 20, 2009 6:18 PM
>> >>> Subject: Thread Safety
>> >>>
>> >>>
>> >>>
>> >>> I am implementing JAX-RS web service with CXF and i want to confirm
>> my
>> >>>
>> >>>> Resource classes are thread safe. i am thinking they are as the
>> >>>> examples
>> >>>> show member variables holding various contexts and the like and no
>> where
>> >>>> down the chain does the "AbstractService" extend java servlet. Can
>> >>>> someone
>> >>>> in the know please confirm?
>> >>>>
>> >>>>
>> >>>> All the fields containing injected contexts are thread safe, when
>> >>> resource
>> >>> classes are singletons, so yes resource classes are thread safe.
>> >>>
>> >>> and no where down the chain does the "AbstractService" extend java
>> >>>
>> >>>> servlet.
>> >>>>
>> >>>>
>> >>> Can you clarify please what you meant to say ?
>> >>>
>> >>> thanks, Sergey
>> >>>
>> >>>
>> >>
>> >
>>
>
>
--
View this message in context: http://www.nabble.com/Thread-Safety-tp25066315p25722063.html
Sent from the cxf-user mailing list archive at Nabble.com.