The OneWay handling in CXF is more defined by the JAX-WS spec which uses the 
JSR-181 spec, but also clarifies some of it and puts additional requirements 
and expectations on it.  

In the case of OneWay's and HTTP, it's specifically talked about in section 
10.4.1.2:

----------------------
HTTP interactions are request-response in nature. When using HTTP as the 
transfer protocol for a one-way SOAP message, implementations wait for the 
HTTP response even though there is no SOAP message in the HTTP response 
entity body.

♦ Conformance (One-way operations): When invoking one-way operations, an 
implementation of the SOAP/HTTP binding MUST block until the HTTP response 
is received or an error occurs.

Note that completion of the HTTP request simply means that the transmission 
of the request is complete, not that the request was accepted or processed.

--------------------------

So basically, on the client side, we block on the server sends back a 
response (normally a 202  with no body for a oneway, but the WSI-BP does 
allow for a 200 response code.).   That does make the server side processing 
a bit more complex.  Normally, you would want the server to send back that 
202 as quickly as possible to release the client thread.  In CXF, we have an 
interceptor on the incoming chain that runs right after the READ phase that 
will check if the target operation is a oneway or not and send the 202 at 
that point if possible.


Dan



On Monday, July 30, 2012 05:54:43 PM COURTAULT Francois wrote:
> Hello guys,
> 
> I have read the JSR 181 spec and the @OneWay is not clear for me.
> Just want to have your interpretation....
> 
> In the spec, it is said that: "Indicates that the given web method has
> only an input message and no output. Typically, a oneway method returns
> the thread of control to the calling application prior to executing the
> actual business method"
> 
> What typically means ? Does it mean MUST-SHALL, SHOULD or MAY according to
> you ?
> 
> Still about the OneWay what is the HTTP binding for this annotation ? I
> have seen that some implementation returns a 202. Is it a standard HTTP
> status code  value for OneWay ?



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

Reply via email to