I need to make a web request to a RESTful server from Java. I would like for my Java code to handle the response asynchronously. I am looking for a framework which handles t
This is easily solved in java with the Observer Pattern
Observable
and implements Runnable
Observer
, registers with new class as observerCheck out the ning async http client project on GitHub. It gives you the option to use a Future or to define a callback for when the request completes:
https://github.com/sonatype/async-http-client
By the way, I took a look at FutureTask and it does not appear to be what I need because it requires the client to wait for it to complete at some point.
You don't have to call FutureTask.get() from the initiating thread in order to get the results of the task. You could just have the Callable
passed to the FutureTask
also handle communicating it's output to some other component. The get()
methods are there so that you can get the results of the async computation, which may involve waiting for the computation to finish if it has not yet.
If you would prefer the callback style, you can simply have the Callable invoke a callback of your own construction or handle the result on it's own.