Java 类javax.ws.rs.client.AsyncInvoker 实例源码

项目:Mastering-Java-EE-Development-with-WildFly    文件:ReceiveMessagesTestCase.java   
private MyResult invokeCallbackString(String url) {
    Client client = newClient();
    WebTarget target = client.target(url);
    final AsyncInvoker asyncInvoker = target.request().async();
    final MyResult myResponse = new MyResult();

    asyncInvoker.get(new InvocationCallback<String>() {
        @Override
        public void completed(String response) {
            myResponse.setResponse(response);
            myResponse.setOk(true);
        }

        @Override
        public void failed(Throwable arg0) {
            myResponse.setResponse(arg0.getMessage());
            myResponse.setOk(false);
        }
    });
    try {
        sleep(2000);
    } catch (InterruptedException e) {
        logger.log(SEVERE, "error", e);
    }
    return myResponse;
}
项目:Mastering-Java-EE-Development-with-WildFly    文件:ReceiveMessagesTestCase.java   
private MyResult invokeCallbackResponse(String url) {
    Client client = newClient();
    WebTarget target = client.target(url);
    final AsyncInvoker asyncInvoker = target.request().async();
    final MyResult myResponse = new MyResult();

    asyncInvoker.get(new InvocationCallback<Response>() {
        @Override
        public void completed(Response response) {
            myResponse.setResponse(response.readEntity(String.class));
            myResponse.setOk(response.hasEntity());
        }

        @Override
        public void failed(Throwable arg0) {
            myResponse.setResponse(arg0.getMessage());
            myResponse.setOk(false);
        }
    });
    try {
        sleep(2000);
    } catch (InterruptedException e) {
        logger.log(SEVERE, "error", e);
    }
    return myResponse;
}
项目:qds-sdk-java    文件:QdsClientImpl.java   
private AsyncInvoker prepareRequest(ForPage forPage, RequestDetails entity, String... additionalPaths)
{
    WebTarget localTarget = prepareTarget(forPage, entity, additionalPaths);

    Invocation.Builder builder = localTarget.request().accept(MediaType.APPLICATION_JSON_TYPE);
    if (configuration.getApiToken() != null)
    {
        builder = builder.header("X-AUTH-TOKEN", configuration.getApiToken());
    }

    if ((entity != null) && entity.canBeRetried())
    {
        builder = builder.property(RetryConnector.PROPERTY_ENABLE, true);
    }

    return builder.async();
}
项目:datacollector    文件:OmniturePollingConsumer.java   
/**
 * Posts a request to the Omniture API to get a report back. Reports may take a while to generate,
 * so this will loop on the Report.Get request, and ignore any errors indicating that the report
 * is not yet ready.
 * @param reportId ID of report to get
 * @throws InterruptedException
 * @throws ExecutionException
 * @throws TimeoutException
 * @throws IOException
 */
public void getReport(int reportId)
    throws InterruptedException, ExecutionException, TimeoutException, IOException, StageException {
  int waitTime = 1000;
  Response response = null;
  while (!stop) {
    final AsyncInvoker asyncInvoker = getResource.request()
        .header(WSSE_HEADER, OmnitureAuthUtil.getHeader(username.get(), sharedSecret.get()))
        .async();

    LOG.debug("Getting report using URL {} with report ID {}", getResource.getUri().toURL().toString(), reportId);
    final Future<Response> responseFuture = asyncInvoker.post(Entity.json("{ \"reportID\": " + reportId + " }"));
    response = responseFuture.get(responseTimeoutMillis, TimeUnit.MILLISECONDS);
    String input = response.readEntity(String.class);

    ObjectMapper mapper = new ObjectMapper();
    JsonNode root = mapper.readTree(input);

    // If the report has an error field, it means the report has not finished generating
    if (!root.has("error")) {
      boolean accepted = entityQueue.offer(input, responseTimeoutMillis, TimeUnit.MILLISECONDS);
      if (!accepted) {
        LOG.warn("Response buffer full, dropped record.");
      }
      break;
    } else {
      // Exponential backoff while making subsequent Report.Get requests
      if (root.get("error").textValue().equals("report_not_ready")) {
        waitTime *= 2;
        LOG.info("Report not available. Sleeping for {} seconds", waitTime / 1000);
        Thread.sleep(waitTime);
      } else {
        throw new StageException(Errors.OMNITURE_02,
            root.get("error").get("error_description").asText());
      }
    }
  }
  response.close();
}
项目:qds-sdk-java    文件:QdsClientImpl.java   
@VisibleForTesting
protected <T> Future<T> invokePreparedRequest(RequestDetails entity, InvocationCallback<T> callback, AsyncInvoker invoker)
{
    if (entity != null)
    {
        if (entity.getEntity() != null)
        {
            return invoker.method(entity.getMethod().name(), Entity.entity(entity.getEntity(), MediaType.APPLICATION_JSON_TYPE), callback);
        }
        return invoker.method(entity.getMethod().name(), callback);
    }
    return invoker.get(callback);
}
项目:qds-sdk-java    文件:QdsClientImpl.java   
@VisibleForTesting
protected <T> Future<T> invokePreparedRequest(RequestDetails entity, Class<T> responseType, AsyncInvoker invoker)
{
    if (entity != null)
    {
        if (entity.getEntity() != null)
        {
            return invoker.method(entity.getMethod().name(), Entity.entity(entity.getEntity(), MediaType.APPLICATION_JSON_TYPE), responseType);
        }
        return invoker.method(entity.getMethod().name(), responseType);
    }
    return invoker.get(responseType);
}
项目:qds-sdk-java    文件:QdsClientImpl.java   
@VisibleForTesting
protected <T> Future<T> invokePreparedRequest(RequestDetails entity, GenericType<T> responseType, AsyncInvoker invoker)
{
    if (entity != null)
    {
        if (entity.getEntity() != null)
        {
            return invoker.method(entity.getMethod().name(), Entity.entity(entity.getEntity(), MediaType.APPLICATION_JSON_TYPE), responseType);
        }
        return invoker.method(entity.getMethod().name(), responseType);
    }
    return invoker.get(responseType);
}
项目:minijax    文件:MinijaxInvocationBuilder.java   
@Override
public AsyncInvoker async() {
    throw new UnsupportedOperationException();
}
项目:blaze-storage    文件:ResponseObjectBuilder.java   
public AsyncInvoker async() {
    // TODO: implement wrapping
    return delegate.async();
}
项目:qds-sdk-java    文件:QdsClientImpl.java   
@Override
public <T> Future<T> invokeRequest(ForPage forPage, RequestDetails requestDetails, Class<T> responseType, String... additionalPaths)
{
    AsyncInvoker invoker = prepareRequest(forPage, requestDetails, additionalPaths);
    return invokePreparedRequest(requestDetails, responseType, invoker);
}
项目:qds-sdk-java    文件:QdsClientImpl.java   
@Override
public <T> Future<T> invokeRequest(ForPage forPage, RequestDetails requestDetails, GenericType<T> responseType, String... additionalPaths)
{
    AsyncInvoker invoker = prepareRequest(forPage, requestDetails, additionalPaths);
    return invokePreparedRequest(requestDetails, responseType, invoker);
}
项目:qds-sdk-java    文件:QdsClientImpl.java   
@Override
public <T> Future<T> invokeRequest(ForPage forPage, RequestDetails requestDetails, InvocationCallback<T> callback, String... additionalPaths)
{
    AsyncInvoker invoker = prepareRequest(forPage, requestDetails, additionalPaths);
    return invokePreparedRequest(requestDetails, callback, invoker);
}
项目:jive-sdk-java-jersey    文件:JiveAPIClient.java   
public Object call (HttpMethods method, URI uri, String requestContentType, String responseContentType, Object data,
                    JiveAuthorizationSupport authorization, JiveRunAs runAs, Map<String,String> additionalHeaders, Class clazz) throws JiveClientException {

    /**** NEED TO MAKE SURE ****/
    if (requestContentType == null) {
        requestContentType = MediaType.APPLICATION_JSON;
    } // end if

    if (clazz == null) {
        clazz = Object.class;
    } // end if

    Client client = buildClient();

    WebTarget target = client.target(uri);

    AsyncInvoker invoker = getAsyncInvoker(target, requestContentType, authorization, runAs,additionalHeaders);

    Future<Object> responseFuture = null;

    if (data != null) {
        Entity entity = Entity.entity(data, MediaType.APPLICATION_JSON_TYPE);
        responseFuture = invoker.method(method.name(),entity,clazz);
    } else {
        responseFuture = invoker.method(method.name(),clazz);
    } // end if

    Object response = null;

    try {
        response = responseFuture.get();

        //TODO: DETERMINE STATUS CODE??

        if (log.isInfoEnabled()) { log.info("Successful Called ["+uri+"] ..."); }
        return response;
    } catch (BadRequestException bre) {
        log.error("Error Calling API [" + uri + "]", bre);
        throw JiveClientException.buildException("Error Calling API [" + uri + "]",bre,null,data,data.getClass());
    } catch (InterruptedException ie) {
        log.error("Error Calling API [" + uri + "]", ie);
        throw JiveClientException.buildException("Error Calling API [" + uri + "]",ie,null,data,data.getClass());
    } catch (ExecutionException ee) {
        log.error("Error Calling API [" + uri + "]", ee);
        throw JiveClientException.buildException("Error Calling API [" + uri + "]",ee,null,data,data.getClass());
    } // end try/catch

}
项目:jive-sdk-java-jersey    文件:JiveTileClient.java   
public Object fetchData(TileInstance tileInstance, Class clazz) throws JiveClientException {

        initAccessTokens(tileInstance);

        Client client = buildClient();

        //TODO: CONFIRM THE URL NEEDED TO FETCH DATA, PRETTY SURE THIS ISNT jivePushURL
        WebTarget target = client.target(tileInstance.getJivePushUrl());

        AsyncInvoker asyncInvoker =  target.request(MediaType.APPLICATION_JSON_TYPE)
                                           .header(HttpHeaders.AUTHORIZATION,tileInstance.getCredentials().getAuthorizationHeader())
                                           .async();

        Future<Response> responseFuture = asyncInvoker.get();

        Response response = null;

        try {
            response = responseFuture.get();
            //TODO: CHECK THAT THIS IS THE CORRECT RESPONSE CODE
            if (response.getStatus() == 204) {
                //TODO: CONFIRM THE URL NEEDED TO FETCH DATA, PRETTY SURE THIS ISNT jivePushURL
                if (log.isInfoEnabled()) { log.info("Successful Fetch ["+tileInstance.getJivePushUrl()+"]"); }
                //TODO: EXPORT TO UTILITY CLASS
                //TODO: NEED TO USE JACKSON AND CONVERT ENTITY TO ITS ORIGINAL OBJECT TYPE?
                return response.getEntity();
            } // end if
        } catch (BadRequestException bre) {
            log.error("Error Fetching Data From Tile [" + tileInstance.getJivePushUrl() + "]", bre);
            throw JiveClientException.buildException("Error Fetching Data to Tile [" + tileInstance.getJivePushUrl() + "]",bre,tileInstance,null,clazz);
        } catch (InterruptedException ie) {
            log.error("Error Fetching Data From Tile [" + tileInstance.getJivePushUrl() + "]", ie);
            throw JiveClientException.buildException("Error Fetching Data to Tile [" + tileInstance.getJivePushUrl() + "]",ie,tileInstance,null,clazz);
        } catch (ExecutionException ee) {
            log.error("Error Fetching Data From Tile [" + tileInstance.getJivePushUrl() + "]", ee);
            throw JiveClientException.buildException("Error Fetching Data to Tile [" + tileInstance.getJivePushUrl() + "]",ee,tileInstance,null,clazz);
        } // end try/catch

        asyncInvoker = null;
        target = null;
        client.close();
        client = null;

        return null;
    }
项目:jive-sdk-java-jersey    文件:JiveOAuthClient.java   
public void initAccessTokens(JiveInstance jiveInstance) {

        if (!JiveSDKUtils.isAllExist(jiveInstance.getCredentials().getRefreshToken())) {
            if (log.isDebugEnabled()) { log.debug("Refresh Credentials DO NOT Exist, Requesting Access Token..."); }
            requestAccessTokens(jiveInstance);
            return;
        } // end if

        //TODO: ADD LOGIC TO EXIT IF ACCESS TOKENS ARE STILL VALID

        Client client = buildClient();
        client.register(HttpAuthenticationFeature.basic(jiveInstance.getClientId(), jiveInstance.getClientSecret()));
        WebTarget target = client.target(jiveInstance.getJiveUrl()).path("/oauth2/token");
        Form form = new Form("grant_type", "refresh_token");
        form.param("refresh_token", jiveInstance.getCredentials().getAccessToken());
        form.param("client_id", jiveInstance.getClientId());
        form.param("client_secret", jiveInstance.getClientSecret());

        //TODO:  IMPLEMENT FUTURES
        AsyncInvoker asyncInvoker = target.request(MediaType.APPLICATION_FORM_URLENCODED).async();

        Future<JiveOAuthResponse> responseFuture = asyncInvoker.post(Entity.entity(form, MediaType.APPLICATION_JSON_TYPE),JiveOAuthResponse.class);

        JiveOAuthResponse response = null;
        try {
            response = responseFuture.get();
        } catch (BadRequestException bre) {
            log.error("Error Getting OAuth Access Tokens [/oauth2/token]", bre);
        } catch (InterruptedException ie) {
            log.error("Error Getting OAuth Access Tokens [/oauth2/token]", ie);
        } catch (ExecutionException ee) {
            log.error("Error Getting OAuth Access Tokens [/oauth2/token]", ee);
        } finally {
            response = null;
        } // end try/catch
        responseFuture = null;
        form = null;
        target = null;
        client.close();
        client = null;

//      BACKUP
//      JiveOAuthResponse response = target.request(MediaType.APPLICATION_FORM_URLENCODED).post(Entity.entity(form, MediaType.APPLICATION_JSON_TYPE),JiveOAuthResponse.class);

        if (log.isDebugEnabled()) { log.debug("Refresh Token : Response : " + response); }

        OAuthCredentials credentials = new OAuthCredentials();
        credentials.setAccessToken(response.getAccessToken());
        credentials.setRefreshToken(response.getRefreshToken());
        jiveInstance.setCredentials(credentials);
    }
项目:MasterStats    文件:RiotApiResponse.java   
AsyncInvoker get();