Thanks a lot for your Sergey, I managed to implement the service with your
Help!

Regards.


2013/5/14 Sergey Beryozkin <[email protected]>

> Hi
>
> On 14/05/13 17:21, Marco Zapata wrote:
>
>> Hello,
>>
>> I'm currently trying to implement an async REST  service,  but I'm having
>> trouble getting it to work.
>>
>> I was using the "@UseAsyncMethod", but the when I call the service from
>> the
>> AsyncClient, the service only does the synchronous logic.
>>
>
> @UseAsyncMethod is a CXF specific annotation which is not recognized yet
> by the JAX-RS runtime, please watch:
>
> https://issues.apache.org/**jira/browse/CXF-4995<https://issues.apache.org/jira/browse/CXF-4995>
>
> We will get it supported for JAX-RS server/client runtimes as well.
>
> That said, please consider using JAX-RS 2.0 AsyncResponse,
>
> https://jax-rs-spec.java.net/**nonav/2.0-SNAPSHOT/apidocs/**
> javax/ws/rs/container/**AsyncResponse.html<https://jax-rs-spec.java.net/nonav/2.0-SNAPSHOT/apidocs/javax/ws/rs/container/AsyncResponse.html>
>
> see the test server code here:
> http://svn.apache.org/repos/**asf/cxf/trunk/systests/jaxrs/**
> src/test/java/org/apache/cxf/**systest/jaxrs/**BookContinuationStore.java<http://svn.apache.org/repos/asf/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookContinuationStore.java>
>
> (supported from CXF 2.7.x & on the trunk).
>
> I also recommend using CXF WebClient to JAX-RS 2.0 AsyncInvoker bridge,
> do WebClient.create("http://**someaddress <http://someaddress>").async()
> and start using AsyncInvoker:
>
> https://jax-rs-spec.java.net/**nonav/2.0-SNAPSHOT/apidocs/**
> javax/ws/rs/client/**AsyncInvoker.html<https://jax-rs-spec.java.net/nonav/2.0-SNAPSHOT/apidocs/javax/ws/rs/client/AsyncInvoker.html>
>
> 2.0 Client API will be completely supported for CXF 3.0
>
> HTH, Sergey
>
>
>
>> I was wondering if you have and example on How to the the async service on
>> REST
>>
>>
>> My service look like
>>
>> @UseAsyncMethod
>> @Override
>> public Device getDevice(int orderID) {
>>   LOG.info("Executing operation getOrder synchronously");
>> Order o = new Order();
>>    //ORder Logic
>> return o;
>> }
>>
>>
>> public Future<?>  getOrderAsync( final int  orderID) {
>>   LOG.info("Executing operation greetMeSometimeAsync asynchronously\n");
>> final AsyncHandler<Order>  asyncHandler = new AsyncHandler<Order>() {
>>
>> @Override
>> public void handleResponse(Response<Order>  res) {
>> // TODO Auto-generated method stub
>> LOG.info("handling");
>> }
>> };
>>   final ServerAsyncResponse<Device>  r = new ServerAsyncResponse<Order>();
>> new Thread() {
>> public void run() {
>> Order resp = new Order ();
>> resp.setId(1);
>> resp.setName("Im async");
>>    r.set(resp);
>>   try {
>> Thread.sleep(300);
>> } catch (InterruptedException e) {
>> e.printStackTrace();
>> }
>>   LOG.info("Responding on background thread\n");
>> asyncHandler.handleResponse(r)**;
>> }
>> }.start();
>>
>> return r;
>> }
>>
>>
>> Thanks in advance for you help.
>>
>> Regards
>>
>> Marco Zapata
>>
>>
>
>

Reply via email to