Hi all,
I've implemented something related to this, although not directly using
the Jetty HttpClient. Due to internal reasons, I settled on the Jersey
Client API. On a side note, you can tell the Jersey Client API to use
the Jetty HttpClient underneath, so might still be useful here.
I've published some code at
https://github.com/boekhold/jaxws-jersey-client-api. I'd be very
interested to hear your feedback on this!
One note, the
maarten.jaxws.jersey.client.JerseyClientTransportTube.checkStatusCode()
method was copied pretty much verbatim from the JAX-WS RI at
https://java.net/projects/jax-ws/sources/sources/content/tags/JAXWS_2_2_5_07282011/jaxws-ri/rt/src/com/sun/xml/ws/transport/http/client/HttpTransportPipe.java?rev=14203.
I have no idea what implications that has on any licensing. If anybody
can comment on that I'd be very grateful.
Maarten
On 2015-02-22 21:30, Gregor Jarisch wrote:
Hi Maarten,
yes, you are correct. I didn't read carefully enough, sorry for that.
Nevertheless it also would be interesting for JAX-RS.
Gregor
Maarten Boekhold<[email protected]> , 20.02.2015 17:23:
Hi gregor,
Unless I am missing something from your email, I think you
misread 'JAX-WS' as 'JAX-RS'...
Maarten
On 20 February 2015 17:00:50 Gregor Jarisch <[email protected]>
wrote:
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.
o If our JettyHttpClientFeature is enabled, then return
an instance of JettyHttpClientTransportTube
(initialized with the HttpClient connection)
o 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] <mailto:[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
_______________________________________________
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