Hi Maarten,
you may wanna take a look at the client library implementation of Resteasy 3.x.
Although they don't use jetty http client in their implementation
(unfortunately), that might be a good starting point to look at how it is
implemented in general (even if you not using resteasy as JAX-RS
implementation).
http://docs.jboss.org/resteasy/docs/3.0.9.Final/userguide/html_single/#RESTEasy_Client_Framework
Having said this; since http2 is close by and jetty close to releasing
something useful here - how about trying to implement it with http2 already?
Just a thought.
Gregor
Maarten Boekhold <[email protected]> , 17.02.2015 12:26:
Hi,
Done some more research. I think something like the following should
be possible:
Create a JettyHttpClientFeature extends WebServiceFeature that
acts as the container for the HttpClient instance to use Pass that
feature as part of the service.getXXXPort(feature) "proxy factory"
method Create (and register) a
JettyHttpClientTransportTubeFactory/JettyHttpClientTransportTube
implementations The factory has access to the ClientTubeAssemblerContext,
which has access to WSBinding which has access to the
WebServiceFeatures that were provided to the getXXXPort() method.
If our JettyHttpClientFeature is enabled, then return an
instance of JettyHttpClientTransportTube (initialized with the
HttpClient connection) Otherwise return the default HttpTransportPipe
(which implements Tube)
Any comments on this?
Maarten
On 2015-02-17 12:58, Maarten Boekhold wrote:
Hi all,
I am wondering if it is in any way possible to use the Jetty HTTP
Client to handle the underlying HTTP communication for JAX-WS *client
requests*, eg:
HttpClient client = new HttpClient();
// configure HttpClient
Service service = ...; StockQuote quoteService =
(StockQuote)service.getPort(portName);
javax.xml.ws.BindingProvider bp =
(javax.xml.ws.BindingProvider)quoteService;
Map<String,Object> context = bp.getRequestContext();
context.setProperty("HTTP.CLIENT", client); Float quote =
quoteService.getPrice(ticker);
And that request would be done using the "client" instance of
HttpClient. Also, this would need to work with the JAX-WS reference
implementation as included in JSE 7 & 8.
If something like this is not currently possible, does anybody
have any idea where to start looking for what needs to be coded? I've
been looking at the JAX-WS specifications, specifically chapters 5 & 6
(Service APIs and Core APIs), but I'm getting a bit lost. Googling also
has turned up something related to "TransportPipeFactory", which I guess
is specific to the reference implementation, because it's not mentioned
in the JAX-WS standard specifications.
Maarten
_______________________________________________
jetty-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from
this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users
_______________________________________________
jetty-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from
this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users_______________________________________________
jetty-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from
this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users