Example usage for org.springframework.web.client HttpServerErrorException getResponseHeaders

List of usage examples for org.springframework.web.client HttpServerErrorException getResponseHeaders

Introduction

In this page you can find the example usage for org.springframework.web.client HttpServerErrorException getResponseHeaders.

Prototype

@Nullable
public HttpHeaders getResponseHeaders() 

Source Link

Document

Return the HTTP response headers.

Usage

From source file:com.bose.aem.spring.config.ConfigServicePropertySourceLocator.java

@Override
public org.springframework.core.env.PropertySource<?> locate(
        org.springframework.core.env.Environment environment) {
    ConfigClientProperties client = this.defaults.override(environment);
    CompositePropertySource composite = new CompositePropertySource("configService");
    RestTemplate restTemplate = this.restTemplate == null ? getSecureRestTemplate(client) : this.restTemplate;
    Exception error = null;/*from  ww  w . j  a  va 2  s  . c o  m*/
    String errorBody = null;
    //logger.info("Fetching config from server at: " + client.getRawUri());
    try {
        String[] labels = new String[] { "" };
        if (StringUtils.hasText(client.getLabel())) {
            labels = StringUtils.commaDelimitedListToStringArray(client.getLabel());
        }
        // Try all the labels until one works
        for (String label : labels) {
            Environment result = getRemoteEnvironment(restTemplate, client.getRawUri(), client.getName(),
                    client.getProfile(), label.trim());
            if (result != null) {
                //                    logger.info(String.format("Located environment: name=%s, profiles=%s, label=%s, version=%s",
                //                            result.getName(),
                //                            result.getProfiles() == null ? "" : Arrays.asList(result.getProfiles()),
                //                            result.getLabel(), result.getVersion()));

                for (PropertySource source : result.getPropertySources()) {
                    @SuppressWarnings("unchecked")
                    Map<String, Object> map = (Map<String, Object>) source.getSource();
                    composite.addPropertySource(new MapPropertySource(source.getName(), map));
                }
                return composite;
            }
        }
    } catch (HttpServerErrorException e) {
        error = e;
        if (MediaType.APPLICATION_JSON.includes(e.getResponseHeaders().getContentType())) {
            errorBody = e.getResponseBodyAsString();
        }
    } catch (Exception e) {
        error = e;
    }
    if (client != null && client.isFailFast()) {
        throw new IllegalStateException(
                "Could not locate PropertySource and the fail fast property is set, failing", error);
    }
    //        logger.warn("Could not locate PropertySource: "
    //                + (errorBody == null ? error == null ? "label not found" : error.getMessage() : errorBody));
    return null;

}

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

/**
 * Main method to perform request to Onebox REST API.
 *
 * @param authenticationForm// w w  w .  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;
}

From source file:org.terasoluna.gfw.functionaltest.app.exceptionhandling.ExceptionHandlingTest.java

@Test
public void test03_01_servletFrameworkHandling() {

    driver.findElement(By.id("servletFrameworkHandling_03_01")).click();

    // TODO Assert Output Log

    // Error Code assert
    assertThat(driver.findElement(By.id("exceptionCode")).getText(), is("i.xx.xxx"));

    // screen capture
    screenCapture.save(driver);/* ww  w .  jav a2 s  .c  o  m*/

    try {
        restTemplate.getForEntity(applicationContextUrl + "/exceptionhandling/3_1", String.class);
    } catch (HttpServerErrorException e) {
        // Response Header Error Code assert
        assertThat(e.getResponseHeaders().get("X-Exception-Code").get(0).toString(), is("i.xx.xxx"));
        // Response Code assert
        assertThat(e.getStatusCode().toString(), is("500"));
    }
}

From source file:org.terasoluna.gfw.functionaltest.app.exceptionhandling.ExceptionHandlingTest.java

@Test
public void test03_02_servletFrameworkHandling() {

    driver.findElement(By.id("servletFrameworkHandling_03_02")).click();

    // TODO Assert Output Log

    // Error Code assert
    assertThat(driver.findElement(By.id("exceptionCode")).getText(), is("w.xx.xxx"));

    // screen capture
    screenCapture.save(driver);/*  w ww  . ja  v a 2 s.  co  m*/

    try {
        restTemplate.getForEntity(applicationContextUrl + "/exceptionhandling/3_2", String.class);
    } catch (HttpServerErrorException e) {
        // Response Header Error Code assert
        assertThat(e.getResponseHeaders().get("X-Exception-Code").get(0).toString(), is("w.xx.xxx"));
        // Response Code assert
        assertThat(e.getStatusCode().toString(), is("500"));
    }
}

From source file:org.terasoluna.gfw.functionaltest.app.exceptionhandling.ExceptionHandlingTest.java

@Test
public void test03_03_servletFrameworkHandling() {

    driver.findElement(By.id("servletFrameworkHandling_03_03")).click();

    // TODO Assert Output Log

    // Error Code assert
    assertThat(driver.findElement(By.id("exceptionCode")).getText(), is("e.xx.xxx"));

    // screen capture
    screenCapture.save(driver);/*from  w  w  w  .  ja v a  2 s  .  c o  m*/

    try {
        restTemplate.getForEntity(applicationContextUrl + "/exceptionhandling/3_3", String.class);
    } catch (HttpServerErrorException e) {
        // Response Header Error Code assert
        assertThat(e.getResponseHeaders().get("X-Exception-Code").get(0).toString(), is("e.xx.xxx"));
        // Response Code assert
        assertThat(e.getStatusCode().toString(), is("500"));
    }
}

From source file:org.terasoluna.gfw.functionaltest.app.exceptionhandling.ExceptionHandlingTest.java

@Test
public void test03_06_servletFrameworkHandling() {

    driver.findElement(By.id("servletFrameworkHandling_03_06")).click();

    // TODO Assert Output Log

    // Error Code assert
    assertThat(driver.findElement(By.id("exceptionCode")).getText(), is("e.xx.9999"));

    // screen capture
    screenCapture.save(driver);/*w  w w . ja v a2s . c o m*/

    try {
        restTemplate.getForEntity(
                applicationContextUrl + "/exceptionHandlingIgnoreResultMessages/exceptionhandling/3_6",
                String.class);
    } catch (HttpServerErrorException e) {
        // Response Header Error Code assert
        assertThat(e.getResponseHeaders().get("X-Exception-Code").get(0).toString(), is("e.xx.9999"));
        // Response Code assert
        assertThat(e.getStatusCode().toString(), is("500"));
    }
}

From source file:org.terasoluna.gfw.functionaltest.app.exceptionhandling.ExceptionHandlingTest.java

@Test
public void test03_08_servletFrameworkHandling() {

    driver.findElement(By.id("servletFrameworkHandling_03_08")).click();

    // TODO Assert Output Log

    // Error Code assert
    assertThat(driver.findElement(By.id("exceptionCode")).getText(), is("e.xx.9999"));

    // screen capture
    screenCapture.save(driver);/*from  w ww  . ja  v  a 2 s. c  o  m*/

    try {
        restTemplate.getForEntity(
                applicationContextUrl + "/exceptionHandlingChangeAttribute/exceptionhandling/3_8",
                String.class);
    } catch (HttpServerErrorException e) {
        // Response Header Error Code assert
        assertThat(e.getResponseHeaders().get("X-Error-Code").get(0).toString(), is("e.xx.9999"));
        // Response Code assert
        assertThat(e.getStatusCode().toString(), is("500"));
    }
}

From source file:org.terasoluna.gfw.functionaltest.app.exceptionhandling.ExceptionHandlingTest.java

@Test
public void test03_09_servletFrameworkHandling() {

    driver.findElement(By.id("servletFrameworkHandling_03_09")).click();

    // TODO Assert Output Log

    // Error Code assert
    assertThat(driver.findElement(By.id("exceptionCode")).getText(), is("e.xx.xxx"));

    // screen capture
    screenCapture.save(driver);// w  w  w .  ja va2 s. com

    try {
        restTemplate.getForEntity(
                applicationContextUrl + "/exceptionHandlingChangeAttribute/exceptionhandling/3_9",
                String.class);
    } catch (HttpServerErrorException e) {
        // Response Header Error Code assert
        assertThat(e.getResponseHeaders().get("X-Error-Code").get(0).toString(), is("e.xx.xxx"));
        // Response Code assert
        assertThat(e.getStatusCode().toString(), is("500"));
    }
}

From source file:org.terasoluna.gfw.functionaltest.app.exceptionhandling.ExceptionHandlingTest.java

@Test
public void test03_05_servletFrameworkHandling() {

    driver.findElement(By.id("servletFrameworkHandling_03_05")).click();

    // TODO Assert Output Log

    // Error Code assert
    assertThat(driver.findElement(By.id("exceptionCode")).getText(), is("e.xx.9999"));
    // Response Code assert
    assertThat(driver.findElement(By.xpath("//div[@id='messagesPanel']/div/ul/li")).getText(), is("w.yy.yyy"));

    // screen capture
    screenCapture.save(driver);// www.j  ava  2 s . c  om

    try {
        restTemplate.getForEntity(applicationContextUrl + "/exceptionhandling/3_5", String.class);
    } catch (HttpServerErrorException e) {
        // Response Header Error Code assert
        assertThat(e.getResponseHeaders().get("X-Exception-Code").get(0).toString(), is("e.xx.9999"));
        // Response Code assert
        assertThat(e.getStatusCode().toString(), is("500"));
    }

}

From source file:org.springframework.cloud.config.client.AbstractConfigServicePropertyLocator.java

@Override
public PropertySource<?> locate(Environment environment) {
    final ConfigClientProperties client = defaults.override(environment);
    final CompositePropertySource composite = new CompositePropertySource("configService");

    Exception error;//from   ww  w .  ja  va2  s  . c o m
    String errorBody = null;

    try {
        return tryLocating(client, composite, environment);
    } catch (HttpServerErrorException e) {
        error = e;
        if (MediaType.APPLICATION_JSON.includes(e.getResponseHeaders().getContentType())) {
            errorBody = e.getResponseBodyAsString();
        }
    } catch (Exception e) {
        error = e;
    }
    if (client != null && client.isFailFast()) {
        throw new IllegalStateException(
                "Could not locate PropertySource and the fail fast property is set, failing", error);
    }
    logger.error("Could not locate PropertySource: " + (errorBody == null ? error.getMessage() : errorBody));
    return null;
}