Thanks for your response.

> The better option is to store values on the Message that is passed to the 
> interceptor.   It's just a property map.   The implementation can then grab 
> it 
> directly from an injected WebServiceContext (if using JAX-WS) or via 
> PhaseInterceptorChain.getCurrentMessage().

Actually I am using a ThreadLocal to be able to retrieve information generated 
by the interceptor once the call to the Web Service has been done.
Once the call is done I don't have access to the Message anymore.



-----Message d'origine-----
De : Daniel Kulp [mailto:[email protected]] 
Envoyé : vendredi 22 avril 2011 18:05
À : [email protected]
Cc : MARTELLI Julien
Objet : Re: CXF Thread

On Friday 22 April 2011 11:26:05 AM MARTELLI Julien wrote:
> Hi all,
>
> I am wondering how CXF manages a Web Service call execution.
> 
> Is there a creation of a new Thread or is it executed in the current
> Thread=  ?

Most of the time it's the current thread, but in the case of one-ways and 
sometimes some of the WS-RM/A scenarios, it could change to a different 
thread.  

> Based on my tests I think it's executed in the current Thread but maybe
> the= re is a specific situation in which CXF creates a new Thread for the
> execut= ion.
> 
> I am concerned about this because I have a custom interceptor that uses a
> T= hreadLocal instance in order for the caller to retrieve some
> information af= ter the call is done. If the execution occurs in the same
> Thread this solut= ion works just fine which is not the case if a new
> Thread is created.

The better option is to store values on the Message that is passed to the 
interceptor.   It's just a property map.   The implementation can then grab it 
directly from an injected WebServiceContext (if using JAX-WS) or via 
PhaseInterceptorChain.getCurrentMessage().    


-- 
Daniel Kulp
[email protected]
http://dankulp.com/blog
Talend - http://www.talend.com

Reply via email to