List of usage examples for org.springframework.http HttpHeaders getFirst
@Override
@Nullable
public String getFirst(String headerName)
From source file:eionet.webq.web.controller.FileDownloadController.java
/** * Performs conversion of specified {@link eionet.webq.dao.orm.UserFile} to specific format. Format is defined by conversionId. * * @param fileId file id or xsl name, which will be used to convert file * @param conversionId id of conversion to be used * @param response object where conversion result will be written *///from w ww . j av a 2 s. c om @RequestMapping("/convert") @Transactional public void convertXmlFile(@RequestParam int fileId, @RequestParam String conversionId, HttpServletResponse response) { UserFile fileContent = userFileService.getById(fileId); ResponseEntity<byte[]> convert = conversionService.convert(fileContent, conversionId); HttpHeaders headers = convert.getHeaders(); setContentType(response, headers.getContentType()); setContentDisposition(response, headers.getFirst("Content-Disposition")); writeToResponse(response, convert.getBody()); }
From source file:org.bytesoft.bytejta.supports.springcloud.SpringCloudCoordinator.java
public Object invokePostCoordinator(Object proxy, Method method, Object[] args) throws Throwable { Class<?> returnType = method.getReturnType(); try {//from w ww . j a v a 2s . co m RestTemplate transactionRestTemplate = SpringCloudBeanRegistry.getInstance().getRestTemplate(); RestTemplate restTemplate = transactionRestTemplate == null ? new RestTemplate() : transactionRestTemplate; StringBuilder ber = new StringBuilder(); int firstIndex = this.identifier.indexOf(":"); int lastIndex = this.identifier.lastIndexOf(":"); String prefix = firstIndex <= 0 ? null : this.identifier.substring(0, firstIndex); String suffix = lastIndex <= 0 ? null : this.identifier.substring(lastIndex + 1); ber.append("http://"); ber.append(prefix == null || suffix == null ? null : prefix + ":" + suffix); ber.append("/org/bytesoft/bytejta/"); ber.append(method.getName()); for (int i = 0; i < args.length; i++) { Serializable arg = (Serializable) args[i]; ber.append("/").append(this.serialize(arg)); } ResponseEntity<?> response = restTemplate.postForEntity(ber.toString(), null, returnType, new Object[0]); return response.getBody(); } catch (HttpClientErrorException ex) { throw new XAException(XAException.XAER_RMFAIL); } catch (HttpServerErrorException ex) { // int statusCode = ex.getRawStatusCode(); HttpHeaders headers = ex.getResponseHeaders(); String failureText = StringUtils.trimToNull(headers.getFirst("failure")); String errorText = StringUtils.trimToNull(headers.getFirst("XA_XAER")); Boolean failure = failureText == null ? null : Boolean.parseBoolean(failureText); Integer errorCode = null; try { errorCode = errorText == null ? null : Integer.parseInt(errorText); } catch (Exception ignore) { logger.debug(ignore.getMessage()); } if (failure != null && errorCode != null) { throw new XAException(errorCode); } else { throw new XAException(XAException.XAER_RMERR); } } catch (Exception ex) { throw new XAException(XAException.XAER_RMERR); } }
From source file:org.bytesoft.bytejta.supports.springcloud.SpringCloudCoordinator.java
public Object invokeGetCoordinator(Object proxy, Method method, Object[] args) throws Throwable { Class<?> returnType = method.getReturnType(); try {/*from www. j a v a 2 s . c o m*/ RestTemplate transactionRestTemplate = SpringCloudBeanRegistry.getInstance().getRestTemplate(); RestTemplate restTemplate = transactionRestTemplate == null ? new RestTemplate() : transactionRestTemplate; StringBuilder ber = new StringBuilder(); int firstIndex = this.identifier.indexOf(":"); int lastIndex = this.identifier.lastIndexOf(":"); String prefix = firstIndex <= 0 ? null : this.identifier.substring(0, firstIndex); String suffix = lastIndex <= 0 ? null : this.identifier.substring(lastIndex + 1); ber.append("http://"); ber.append(prefix == null || suffix == null ? null : prefix + ":" + suffix); ber.append("/org/bytesoft/bytejta/"); ber.append(method.getName()); for (int i = 0; i < args.length; i++) { Serializable arg = (Serializable) args[i]; ber.append("/").append(this.serialize(arg)); } ResponseEntity<?> response = restTemplate.getForEntity(ber.toString(), returnType, new Object[0]); return response.getBody(); } catch (HttpClientErrorException ex) { throw new XAException(XAException.XAER_RMFAIL); } catch (HttpServerErrorException ex) { // int statusCode = ex.getRawStatusCode(); HttpHeaders headers = ex.getResponseHeaders(); String failureText = StringUtils.trimToNull(headers.getFirst("failure")); String errorText = StringUtils.trimToNull(headers.getFirst("XA_XAER")); Boolean failure = failureText == null ? null : Boolean.parseBoolean(failureText); Integer errorCode = null; try { errorCode = errorText == null ? null : Integer.parseInt(errorText); } catch (Exception ignore) { logger.debug(ignore.getMessage()); } if (failure != null && errorCode != null) { throw new XAException(errorCode); } else { throw new XAException(XAException.XAER_RMERR); } } catch (Exception ex) { throw new XAException(XAException.XAER_RMERR); } }
From source file:org.bytesoft.bytejta.supports.springcloud.web.TransactionRequestInterceptor.java
private void invokeAfterRecvResponse(ClientHttpResponse httpResponse, boolean serverFlag) throws IOException { SpringCloudBeanRegistry beanRegistry = SpringCloudBeanRegistry.getInstance(); TransactionBeanFactory beanFactory = beanRegistry.getBeanFactory(); TransactionInterceptor transactionInterceptor = beanFactory.getTransactionInterceptor(); HttpHeaders respHeaders = httpResponse.getHeaders(); String respTransactionStr = respHeaders.getFirst(HEADER_TRANCACTION_KEY); String respPropagationStr = respHeaders.getFirst(HEADER_PROPAGATION_KEY); byte[] byteArray = ByteUtils.stringToByteArray(StringUtils.trimToNull(respTransactionStr)); TransactionContext serverContext = (TransactionContext) CommonUtils.deserializeObject(byteArray); TransactionResponseImpl txResp = new TransactionResponseImpl(); txResp.setTransactionContext(serverContext); RemoteCoordinator serverCoordinator = beanRegistry.getConsumeCoordinator(respPropagationStr); txResp.setSourceTransactionCoordinator(serverCoordinator); txResp.setParticipantDelistFlag(serverFlag ? false : true); transactionInterceptor.afterReceiveResponse(txResp); }
From source file:org.bytesoft.bytetcc.supports.springcloud.ext.CompensableRequestInterceptor.java
private void invokeAfterRecvResponse(ClientHttpResponse httpResponse, boolean serverFlag) throws IOException { SpringCloudBeanRegistry beanRegistry = SpringCloudBeanRegistry.getInstance(); CompensableBeanFactory beanFactory = beanRegistry.getBeanFactory(); TransactionInterceptor transactionInterceptor = beanFactory.getTransactionInterceptor(); HttpHeaders respHeaders = httpResponse.getHeaders(); String respTransactionStr = respHeaders.getFirst(HEADER_TRANCACTION_KEY); String respPropagationStr = respHeaders.getFirst(HEADER_PROPAGATION_KEY); byte[] byteArray = ByteUtils.stringToByteArray(StringUtils.trimToNull(respTransactionStr)); TransactionContext serverContext = (TransactionContext) CommonUtils.deserializeObject(byteArray); TransactionResponseImpl txResp = new TransactionResponseImpl(); txResp.setTransactionContext(serverContext); RemoteCoordinator serverCoordinator = beanRegistry.getConsumeCoordinator(respPropagationStr); txResp.setSourceTransactionCoordinator(serverCoordinator); txResp.setParticipantDelistFlag(serverFlag ? false : true); transactionInterceptor.afterReceiveResponse(txResp); }
From source file:org.bytesoft.bytetcc.supports.springcloud.SpringCloudCoordinator.java
public Object invokePostCoordinator(Object proxy, Method method, Object[] args) throws Throwable { Class<?> returnType = method.getReturnType(); try {/* ww w. ja v a2s . c o m*/ int firstIndex = this.identifier.indexOf(":"); int lastIndex = this.identifier.lastIndexOf(":"); String prefix = firstIndex <= 0 ? null : this.identifier.substring(0, firstIndex); String suffix = lastIndex <= 0 ? null : this.identifier.substring(lastIndex + 1); String instanceId = prefix == null || suffix == null ? null : prefix + ":" + suffix; StringBuilder ber = new StringBuilder(); ber.append("http://"); ber.append(instanceId); ber.append("/org/bytesoft/bytetcc/"); ber.append(method.getName()); for (int i = 0; i < args.length; i++) { Serializable arg = (Serializable) args[i]; ber.append("/").append(this.serialize(arg)); } ResponseEntity<?> response = new RestTemplate().postForEntity(ber.toString(), null, returnType, new Object[0]); return response.getBody(); } catch (HttpClientErrorException ex) { throw new XAException(XAException.XAER_RMFAIL); } catch (HttpServerErrorException ex) { // int statusCode = ex.getRawStatusCode(); HttpHeaders headers = ex.getResponseHeaders(); String failureText = StringUtils.trimToNull(headers.getFirst("failure")); String errorText = StringUtils.trimToNull(headers.getFirst("XA_XAER")); Boolean failure = failureText == null ? null : Boolean.parseBoolean(failureText); Integer errorCode = errorText == null || errorText.matches("\\d+") == false ? null : Integer.parseInt(errorText); if (failure != null && errorCode != null) { throw new XAException(errorCode); } else { throw new XAException(XAException.XAER_RMERR); } } catch (Exception ex) { throw new XAException(XAException.XAER_RMERR); } }
From source file:org.bytesoft.bytetcc.supports.springcloud.SpringCloudCoordinator.java
public Object invokeGetCoordinator(Object proxy, Method method, Object[] args) throws Throwable { Class<?> returnType = method.getReturnType(); try {/*w w w . j av a 2 s . c om*/ StringBuilder ber = new StringBuilder(); ber.append("http://"); ber.append(this.identifier); ber.append("/org/bytesoft/bytetcc/"); ber.append(method.getName()); for (int i = 0; i < args.length; i++) { Serializable arg = (Serializable) args[i]; ber.append("/").append(this.serialize(arg)); } ResponseEntity<?> response = new RestTemplate().getForEntity(ber.toString(), returnType, new Object[0]); return response.getBody(); } catch (HttpClientErrorException ex) { throw new XAException(XAException.XAER_RMFAIL); } catch (HttpServerErrorException ex) { HttpHeaders headers = ex.getResponseHeaders(); String failureText = StringUtils.trimToNull(headers.getFirst("failure")); String errorText = StringUtils.trimToNull(headers.getFirst("XA_XAER")); Boolean failure = failureText == null ? null : Boolean.parseBoolean(failureText); Integer errorCode = errorText == null || errorText.matches("\\d+") == false ? null : Integer.parseInt(errorText); if (failure != null && errorCode != null) { throw new XAException(errorCode); } else { throw new XAException(XAException.XAER_RMERR); } } catch (Exception ex) { throw new XAException(XAException.XAER_RMERR); } }
From source file:org.springframework.cloud.gateway.test.GatewayIntegrationTests.java
@Test public void compositeRouteWorks() { Mono<ClientResponse> result = webClient.get().uri("/headers?foo=bar&baz").header("Host", "www.foo.org") .header("X-Request-Id", "123").cookie("chocolate", "chip").exchange(); StepVerifier.create(result).consumeNextWith(response -> { assertStatus(response, HttpStatus.OK); HttpHeaders httpHeaders = response.headers().asHttpHeaders(); assertThat(httpHeaders.getFirst(HANDLER_MAPPER_HEADER)) .isEqualTo(RoutePredicateHandlerMapping.class.getSimpleName()); assertThat(httpHeaders.getFirst(ROUTE_ID_HEADER)).isEqualTo("host_foo_path_headers_to_httpbin"); assertThat(httpHeaders.getFirst("X-Response-Foo")).isEqualTo("Bar"); }).expectComplete().verify();/*from w w w .ja va 2 s.co m*/ }
From source file:org.springframework.cloud.gateway.test.GatewayIntegrationTests.java
@Test public void defaultFiltersWorks() { assertThat(this.properties.getDefaultFilters()).isNotEmpty(); Mono<ClientResponse> result = webClient.get().uri("/headers").header("Host", "www.addresponseheader.org") .exchange();//w w w. j av a 2s . c o m StepVerifier.create(result).consumeNextWith(response -> { HttpHeaders httpHeaders = response.headers().asHttpHeaders(); assertThat(httpHeaders.getFirst("X-Response-Default-Foo")).isEqualTo("Default-Bar"); assertThat(httpHeaders.get("X-Response-Default-Foo")).hasSize(1); }).expectComplete().verify(DURATION); }
From source file:org.springframework.cloud.gateway.test.GatewayIntegrationTests.java
@Test public void loadBalancerFilterWorks() { Mono<ClientResponse> result = webClient.get().uri("/get").header("Host", "www.loadbalancerclient.org") .exchange();// w ww .j a va 2 s . c o m StepVerifier.create(result).consumeNextWith(response -> { assertStatus(response, HttpStatus.OK); HttpHeaders httpHeaders = response.headers().asHttpHeaders(); assertThat(httpHeaders.getFirst(ROUTE_ID_HEADER)).isEqualTo("load_balancer_client_test"); }).expectComplete().verify(DURATION); }