cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From James Mao <james....@iona.com>
Subject Re: isGET in interceptors...
Date Thu, 07 Dec 2006 03:19:10 GMT
Hi Nodet,
> As far as I understand the SOAP 1.2 spec, the GET HTTP verb is used
> for the SOAP Response MEP, which means there is no input message,
> but only a response message. So this is part of the SOAP binding
> and, as you said, there is no relationship with the HTTP binding.
Yes i agree, in SOAP1.2 GET HTTP verb, there is no input message, but 
has the HTTP GET request, right?
So, that's how current isGET works, you can use browser to get the 
response message back.
So uri scheme we used is
http://localhost/SoapContext/SoapPort/greetMe/me/CXF or
http://localhost/SoapContext/SoapPort/greetMe/?me=CXF
And the basic idea is that other language can also consume the service , 
for example, for PHP , you can use the curl to GET the response message 
from the service.
And eventually, the isGET not only support SOAP1.2, but support SOAP1.1 
and XML binding as well.
>
> As far as the code is concerned, I don't know how is the plan to support
> policies definition at the operation level (or is it already done ?),
> but I don't
> really understand how it would be possible without changing the 
> interceptor
> chain dynamically, or by defining a tree of interceptors (instead of a
> list), where
> a subtree would be picked given the ongoing operation. This is the 
> same problem
> for the GET / POST problem on the SOAP binding: an operation can be 
> mapped
> to a GET request, while another one would be mapped to a POST request.
> So you need to select a subtree of the interceptor chain here.
>
Because it's GET, so the client side is just URLConnection, or the 
client is the browser, there is a URIMappingInterceptor sit in the 
server side,
the isGET will skip all the interceptors not necessary in GET 
processing, it's the URIMapping interceptor to dispatch the invocation. 
the rest is as same as the POST processing.

I'm OK with the changing the chain dynamically, they both works. if we 
change the chain dynamically, then for both the SOAP binding and XML 
binding and any other binding to filter the interceptors dynamically, i 
mean the maintenance cost is same. but this approach do have a benefit, 
the benefit is that all the isGET logic in the same place, if we want to 
add some configuration for this function, it'll be more easier. But the 
other side is, it'll be harder to change the chain if the interceptor is 
coarse-grained, that means we want some part of the logic of the 
inteceptor, but in some conditions we want to exclude the interceptors, 
but yes, you can break down the interceptors into pieces to work around 
the problem. So there's pros and cons.

Cheers,
James.


Mime
View raw message