Example usage for org.springframework.web.client HttpClientErrorException printStackTrace

List of usage examples for org.springframework.web.client HttpClientErrorException printStackTrace

Introduction

In this page you can find the example usage for org.springframework.web.client HttpClientErrorException printStackTrace.

Prototype

public void printStackTrace() 

Source Link

Document

Prints this throwable and its backtrace to the standard error stream.

Usage

From source file:com.rsa.redchallenge.standaloneapp.utils.RestInteractor.java

/**
 * Function to call POST interface for a REST server
 *
 * @param path path of the interface in the REST server to be called
 * @return returns the response/*w w w  .j  ava2s  . c  o m*/
 */
public static String performPost(String path, Map<String, Object> params, String jsessionId)
        throws SecurityException {

    RestTemplate restTemplate = new RestTemplate(new HttpComponentsClientHttpRequestFactory());
    setFactory(restTemplate);
    HttpHeaders headers = new HttpHeaders();
    headers.add("Cookie", "RSA_SA_LICENSE=true; " + jsessionId);
    String uri = populatePath(params, path);
    logger.info("performing post request for uri:" + uri);
    HttpEntity<String> request = new HttpEntity<>(headers);

    try {
        String result = restTemplate.exchange(uri, HttpMethod.GET, request, String.class).getBody();
        return result;
    } catch (HttpClientErrorException e) {
        e.printStackTrace();
        throw e;
    }
}

From source file:dk.skogemann.airline.project.ApiController.java

@ExceptionHandler(HttpClientErrorException.class)
public ResponseEntity<JsonError> handleHttpClientException(HttpClientErrorException e) {
    e.printStackTrace();
    JsonError msg = new JsonError();
    msg.setMessage(e.getResponseBodyAsString());
    return new ResponseEntity<>(msg, HttpStatus.BAD_REQUEST);
}

From source file:com.concentricsky.android.khanacademy.data.remote.KAEntityFetcherTask.java

@Override
protected T doInBackground(Void... arg0) {
    // call  API and fetch an entity tree (commonly the tree rooted at the root topic)

    RestTemplate restTemplate = new RestTemplate();
    if (consumer != null) {
        restTemplate.setRequestFactory(new SpringRequestFactory(consumer));
    }//from  www. j  a  v a2s  . c  o m

    // TODO : Set up stream parsing.

    //      RequestCallback callback = new RequestCallback() {
    //
    //         public void doWithRequest(ClientHttpRequest request)
    //               throws IOException {
    //            // TODO Auto-generated method stub
    //            
    //         }
    //         
    //      };
    //      
    //      ResponseExtractor<T> extractor = new ResponseExtractor<T>() {
    //
    //         public T extractData(ClientHttpResponse response)
    //               throws IOException {
    //            
    //            InputStream stream = response.getBody();
    //            
    //            
    //            return null;
    //         }
    //         
    //      };
    //      
    //      restTemplate.execute(url, HttpMethod.GET, requestCallback, responseExtractor)

    // Provide a converter to the restTemplate to get automagic json --> pojo deserialization.
    // Provide a mapper to the converter so we can register the custom Video deserializer. Otherwise, the default ObjectMapper would do fine.
    ObjectMapper mapper = new ObjectMapper();
    mapper.registerModule(new VideoDeserializerModule());
    MappingJacksonHttpMessageConverter converter = new MappingJacksonHttpMessageConverter();
    converter.setObjectMapper(mapper);
    restTemplate.getMessageConverters().add(converter);

    ModelBase entity = null;
    try {
        entity = restTemplate.getForObject(this.url, ModelBase.class);
    } catch (HttpClientErrorException e) {
        e.printStackTrace();
        exception = e;
        // meanwhile, entity is null, so we let that return naturally.
    } catch (ResourceAccessException e) {
        // This one happens on Nexus 7 if we have set a SpringRequestFactory but get no Auth challenge.
        // org.springframework.web.client.ResourceAccessException: I/O error: No authentication challenges found; nested exception is java.io.IOException: No authentication challenges found
        e.printStackTrace();
        Log.e(LOG_TAG, "url was " + url);
        exception = e;
    }

    T result;
    try {
        result = (T) entity;
    } catch (ClassCastException e) {
        e.printStackTrace();
        exception = e;
        result = null;
    }

    Log.d(LOG_TAG, "Response received. Returning entity.");
    return result;
}

From source file:org.openmhealth.shim.OAuth1ShimBase.java

@Override
@SuppressWarnings("unchecked")
public AuthorizationRequestParameters getAuthorizationRequestParameters(String username,
        Map<String, String> additionalParameters) throws ShimException {

    String stateKey = OAuth1Utils.generateStateKey();
    AccessParameters accessParams = accessParametersRepo.findByUsernameAndShimKey(username, getShimKey(),
            new Sort(DESC, "dateCreated"));

    if (accessParams != null && accessParams.getAccessToken() != null) {
        return AuthorizationRequestParameters.authorized();
    }//  w  w  w . ja v a2s  .  co  m

    HttpRequestBase tokenRequest = null;

    try {
        String callbackUrl = shimServerConfig.getCallbackUrl(getShimKey(), stateKey);

        Map<String, String> requestTokenParameters = new HashMap<>();
        requestTokenParameters.put("oauth_callback", callbackUrl);

        String initiateAuthUrl = getBaseRequestTokenUrl();

        tokenRequest = getRequestTokenRequest(initiateAuthUrl, null, null, requestTokenParameters);

        HttpResponse httpResponse = httpClient.execute(tokenRequest);

        Map<String, String> tokenParameters = OAuth1Utils.parseRequestTokenResponse(httpResponse);

        String token = tokenParameters.get(OAuth.OAUTH_TOKEN);
        String tokenSecret = tokenParameters.get(OAuth.OAUTH_TOKEN_SECRET);

        if (tokenSecret == null) {
            throw new ShimException("Request token could not be retrieved");
        }

        URL authorizeUrl = signUrl(getBaseAuthorizeUrl(), token, tokenSecret, null);
        System.out.println("The authorization url is: ");
        System.out.println(authorizeUrl);

        /**
         * Build the auth parameters entity to return
         */
        AuthorizationRequestParameters parameters = new AuthorizationRequestParameters();
        parameters.setUsername(username);
        parameters.setRedirectUri(callbackUrl);
        parameters.setStateKey(stateKey);
        parameters.setAuthorizationUrl(authorizeUrl.toString());
        parameters.setRequestParams(tokenParameters);

        /**
         * Store the parameters in a repo.
         */
        authorizationRequestParametersRepo.save(parameters);

        return parameters;
    } catch (HttpClientErrorException e) {
        e.printStackTrace();
        throw new ShimException("HTTP Error: " + e.getMessage());
    } catch (IOException e) {
        e.printStackTrace();
        throw new ShimException("Unable to initiate OAuth1 authorization, could not parse token parameters");
    } finally {
        if (tokenRequest != null) {
            tokenRequest.releaseConnection();
        }
    }
}

From source file:es.ujaen.dae.restClient.controllers.SessionBackingBean.java

public String acceptPetition(String u) {
    try {/*from   w ww  .  j  a v a2 s  . com*/
        template.postForObject(URL + "requestfriend/accept/" + u, "", Object.class);
    } catch (HttpClientErrorException e) {
        e.printStackTrace();
    }
    if (notifications.size() == 1) {
        return "wall?faces-redirect=true";
    } else {
        return "notifications?faces-redirect=true";
    }
}

From source file:com.ge.predix.acceptance.test.zone.admin.ZoneEnforcementStepsDefinitions.java

@When("^client_one does a GET on (.*?) with (.*?) in zone 1$")
public void client_one_does_a_GET_on_api_with_identifier_in_test_zone_dev(final String api,
        final String identifier) throws Throwable {
    OAuth2RestTemplate acsTemplate = this.acsZone1Template;
    String encodedIdentifier = URLEncoder.encode(identifier, "UTF-8");
    URI uri = URI.create(this.acsUrl + ACS_VERSION + "/" + api + "/" + encodedIdentifier);

    try {/*  ww  w  .j av  a2 s  . c o m*/
        switch (api) {
        case "subject":
            this.responseEntity = acsTemplate.exchange(uri, HttpMethod.GET, new HttpEntity<>(this.zone1Headers),
                    BaseSubject.class);
            this.status = this.responseEntity.getStatusCode().value();
            break;
        case "resource":
            this.responseEntityForResource = acsTemplate.exchange(uri, HttpMethod.GET,
                    new HttpEntity<>(this.zone1Headers), BaseResource.class);
            this.status = this.responseEntityForResource.getStatusCode().value();
            break;
        case "policy-set":
            this.policyset = acsTemplate.exchange(
                    this.acsUrl + PolicyHelper.ACS_POLICY_SET_API_PATH + this.testPolicyName, HttpMethod.GET,
                    new HttpEntity<>(this.zone1Headers), PolicySet.class);
            this.status = this.policyset.getStatusCode().value();
            break;
        default:
            Assert.fail("Api " + api + " does not match/is not yet implemented for this test code.");
        }
    } catch (HttpClientErrorException e) {
        e.printStackTrace();
        Assert.fail("Unable to GET identifier: " + identifier + " for api: " + api);
    }
}

From source file:org.starfishrespect.myconsumption.android.ui.AddSensorActivity.java

private boolean edit() {
    ObjectMapper mapper = new ObjectMapper();
    RestTemplate template = new RestTemplate();
    HttpHeaders httpHeaders = CryptoUtils.createHeadersCurrentUser();
    ResponseEntity<String> responseEnt;
    template.getMessageConverters().add(new FormHttpMessageConverter());
    template.getMessageConverters().add(new StringHttpMessageConverter());

    try {//from  www.j  a  v  a  2  s . co m
        UriComponentsBuilder builder = UriComponentsBuilder
                .fromHttpUrl(SingleInstance.getServerUrl() + "sensors/" + editSensor.getSensorId())
                .queryParam("name", editTextSensorName.getText().toString())
                .queryParam("type", selectedSensorType)
                .queryParam("settings", mapper.writeValueAsString(sensorView.getSensorSettings()));

        responseEnt = template.exchange(builder.build().encode().toUri(), HttpMethod.POST,
                new HttpEntity<>(httpHeaders), String.class);

        String result = responseEnt.getBody();

        Log.d(TAG, result);

        SimpleResponseDTO response = mapper.readValue(result, SimpleResponseDTO.class);
        if (response.getStatus() == 0) {
            return true;
        }
    } catch (HttpClientErrorException e) {
        e.printStackTrace();
        return false;
    } catch (IOException e) {
        e.printStackTrace();
        return false;
    }
    return false;
}

From source file:com.epl.ticketws.services.QueryService.java

public T query(String url, String method, String accept, Class<T> rc, Map<String, String> parameters) {

    try {//from  ww  w. jav a2 s  . c  o m
        URI uri = new URL(url).toURI();
        long timestamp = new Date().getTime();

        HttpMethod httpMethod;
        if (method.equalsIgnoreCase("post")) {
            httpMethod = HttpMethod.POST;
        } else {
            httpMethod = HttpMethod.GET;
        }

        String stringToSign = getStringToSign(uri, httpMethod.name(), timestamp, parameters);

        // logger.info("String to sign: " + stringToSign);
        String authorization = generate_HMAC_SHA1_Signature(stringToSign, password + license);
        // logger.info("Authorization string: " + authorization);

        // Setting Headers
        HttpHeaders headers = new HttpHeaders();
        if (accept.equalsIgnoreCase("json")) {
            headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
        } else {
            headers.setAccept(Arrays.asList(MediaType.TEXT_XML));
        }

        headers.add("Authorization", authorization);
        headers.add("OB_DATE", "" + timestamp);
        headers.add("OB_Terminal", terminal);
        headers.add("OB_User", user);
        headers.add("OB_Channel", channel);
        headers.add("OB_POS", pos);
        headers.add("Content-Type", "application/x-www-form-urlencoded");

        HttpEntity<String> entity;

        if (httpMethod == HttpMethod.POST) {
            // Adding post parameters to POST body
            String parameterStringBody = getParametersAsString(parameters);
            entity = new HttpEntity<String>(parameterStringBody, headers);
            // logger.info("POST Body: " + parameterStringBody);
        } else {
            entity = new HttpEntity<String>(headers);
        }

        RestTemplate restTemplate = new RestTemplate(
                new BufferingClientHttpRequestFactory(new SimpleClientHttpRequestFactory()));
        List<ClientHttpRequestInterceptor> interceptors = new ArrayList<ClientHttpRequestInterceptor>();
        interceptors.add(new LoggingRequestInterceptor());
        restTemplate.setInterceptors(interceptors);

        // Converting to UTF-8. OB Rest replies in windows charset.
        //restTemplate.getMessageConverters().add(0, new StringHttpMessageConverter(Charset.forName(UTF_8)));

        if (accept.equalsIgnoreCase("json")) {
            restTemplate.getMessageConverters().add(0,
                    new org.springframework.http.converter.json.MappingJackson2HttpMessageConverter());
        } else {
            restTemplate.getMessageConverters().add(0,
                    new org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter());
        }

        ResponseEntity<T> response = restTemplate.exchange(uri, httpMethod, entity, rc);

        if (!response.getStatusCode().is2xxSuccessful())
            throw new HttpClientErrorException(response.getStatusCode());

        return response.getBody();
    } catch (HttpClientErrorException e) {
        logger.error(e.getMessage());
        e.printStackTrace();
    } catch (MalformedURLException e) {
        logger.error(e.getMessage());
        e.printStackTrace();
    } catch (SignatureException e) {
        logger.error(e.getMessage());
        e.printStackTrace();
    } catch (URISyntaxException e) {
        logger.error(e.getMessage());
        e.printStackTrace();
    } catch (Exception e) {
        logger.error(e.getMessage());
        e.printStackTrace();
    }
    return null;
}

From source file:es.onebox.rest.utils.service.QueryService.java

/**
 * Main method to perform request to Onebox REST API.
 *
 * @param authenticationForm/*from  w  ww . j a v a2 s .c o  m*/
 * @param queryForm
 * @return Response form request
 */
public ResponseDTO query(AuthenticationForm authenticationForm, QueryForm queryForm) {

    ResponseDTO responseDTO = new ResponseDTO();
    Exception ex = null;

    try {

        URL url = new URL(queryForm.getUrl());
        URI uri = url.toURI();

        Date date = new Date();
        long timestamp = date.getTime();

        HttpMethod httpMethod;

        if (queryForm.getMethod().equalsIgnoreCase("post")) {
            httpMethod = HttpMethod.POST;
        } else {
            httpMethod = HttpMethod.GET;
        }

        // Getting String to encode with HMAC-SHA1
        // First step in the signing algorithm
        String stringToSign = getStringToSign(uri, httpMethod.name(), timestamp, queryForm);

        logger.info("String to sign: " + stringToSign);

        // Encoding String
        // This is the actual authorization string that will be sent in the request
        String authorization = generate_HMAC_SHA1_Signature(stringToSign,
                authenticationForm.getPassword() + authenticationForm.getLicense());

        logger.info("Authorization string: " + authorization);

        // Adding to return object
        responseDTO.setDate(date);
        responseDTO.setStringToSign(stringToSign);
        responseDTO.setAuthorization(authorization);

        // Setting Headers
        HttpHeaders headers = new HttpHeaders();

        if (queryForm.getAccept().equals("json")) {
            headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
        } else {
            headers.setAccept(Arrays.asList(MediaType.TEXT_XML));
        }

        headers.add("Authorization", authorization);
        headers.add("OB_DATE", "" + timestamp);
        headers.add("OB_Terminal", authenticationForm.getTerminal());
        headers.add("OB_User", authenticationForm.getUser());
        headers.add("OB_Channel", authenticationForm.getChannelId());
        headers.add("OB_POS", authenticationForm.getPos());

        // Adding Headers to return object
        responseDTO.setHttpHeaders(headers);

        HttpEntity<String> entity;

        if (httpMethod == HttpMethod.POST) {
            // Adding post parameters to POST body
            String parameterStringBody = queryForm.getParametersAsString();
            entity = new HttpEntity<String>(parameterStringBody, headers);
            logger.info("POST Body: " + parameterStringBody);
        } else {
            entity = new HttpEntity<String>(headers);
        }

        // Creating rest client
        RestTemplate restTemplate = new RestTemplate();

        // Converting to UTF-8. OB Rest replies in windows charset.
        restTemplate.getMessageConverters().add(0, new StringHttpMessageConverter(Charset.forName("UTF-8")));

        // Performing request to Onebox REST API
        ResponseEntity<String> result = restTemplate.exchange(uri, httpMethod, entity, String.class);

        // TODO this functionlity is to map response to objetcs. It is not finished. Only placed here for POC
        /*
        if (queryForm.getMapResponse().booleanValue()) {
        ResponseEntity<EventSearchBean> event = restTemplate.exchange(uri, httpMethod, entity, EventSearchBean.class);
        }
        */

        // Adding response to return object
        responseDTO.setResponseEntity(result);

        logger.debug(result.toString());

    } catch (HttpClientErrorException e) {
        logger.error(e.getMessage());
        ex = e;
        e.printStackTrace();
        responseDTO.setError(e);
        responseDTO.setAdditionalErrorMessage(AppUtils.getMessage("error.request.parameters"));
    } catch (MalformedURLException e) {
        logger.error(e.getMessage());
        ex = e;
        e.printStackTrace();
        responseDTO.setError(e);
        responseDTO.setAdditionalErrorMessage(AppUtils.getMessage("error.request.parameters"));
    } catch (SignatureException e) {
        logger.error(e.getMessage());
        ex = e;
        e.printStackTrace();
        responseDTO.setError(e);
        responseDTO.setAdditionalErrorMessage(AppUtils.getMessage("error.request.parameters"));
    } catch (URISyntaxException e) {
        logger.error(e.getMessage());
        ex = e;
        e.printStackTrace();
        responseDTO.setError(e);
        responseDTO.setAdditionalErrorMessage(AppUtils.getMessage("error.request.parameters"));
    } catch (Exception e) {
        logger.error(e.getMessage());
        ex = e;
        e.printStackTrace();
        responseDTO.setError(e);
        responseDTO.setAdditionalErrorMessage(AppUtils.getMessage("error.request.authentication"));
    } finally {
        if (ex != null && ex instanceof HttpServerErrorException) {
            HttpServerErrorException e2 = (HttpServerErrorException) ex;
            ResponseEntity<String> responseEntity = new ResponseEntity<String>(e2.getResponseHeaders(),
                    HttpStatus.INTERNAL_SERVER_ERROR);

            List<String> ob_error_codes = e2.getResponseHeaders().get("OB_Error_Code");

            String ob_error_code;
            ResponseErrorCodesEnum ob_error = null;

            if (ob_error_codes != null && ob_error_codes.size() == 1) {
                ob_error_code = ob_error_codes.get(0);
                try {
                    ob_error = ResponseErrorCodesEnum.valueOf("ERROR_" + ob_error_code);
                } catch (Exception e) {
                    logger.error("API ERROR CODE NOT DEFINED: " + "ERROR_" + ob_error_code);
                }
                responseDTO.setObResponseErrorCode(ob_error);
            }

            responseDTO.setResponseEntity(responseEntity);
        }
    }

    return responseDTO;
}