主机中的软件中止了 Rest Template 请求
Rest Template request aborted by the software in your host machine
我正在尝试使用 rest 模板访问在我的 Eureka Server 中注册的另一个名为 "user-service" 的服务的端点。其他服务中的端点将 return 数据库中的所有数据,如您在此处所见:
@ResponseBody
@RequestMapping(method = RequestMethod.GET)
@ResponseStatus(value = HttpStatus.OK)
public Page<User> findAll() {
return userRepository.findAll();
}
我的 "client-service" 正在尝试通过此代码使用 "user-service" 的端点。
用户客户端:
public List<UsuarioVo> getUsers(){
HttpEntity headers = new HttpEntity(getHeaders());
String url = urlUserClient + "/users";
ResponseEntity<List<UserVo>> result= restTemplate.exchange(url, HttpMethod.GET, headers , new ParameterizedTypeReference<List<UserVo>>() {});
return new ObjectMapper().convertValue(result.getBody(), TypeFactory.defaultInstance().constructCollectionType(List.class, UserVo.class));
}
private HttpHeaders getHeaders() {
HttpHeaders headers = new HttpHeaders();
headers.set("username", request.getHeader("username"));
return headers;
}
客户端服务:
@ResponseBody
@RequestMapping(value = "/users", method = RequestMethod.GET)
@ResponseStatus(value = HttpStatus.OK)
@PreAuthorize("@searchRole.hasPermission('GET')")
public ResponseEntity<List<ProdutividadeDTO>> getProdutividade(){
List<UserVo> users = pessoaServiceClient.obterUsuarios();
}
当我到达终点时,我的 "user-service" 在执行所有 sql 代码后抛出异常:org.apache.catalina.connector.ClientAbortException: java.io.IOException: An established connection was aborted by the software in your host machine... Caused by: java.io.IOException: An established connection was aborted by the software in your host machine
有人知道为什么会这样吗?
本地我修好了!问题是,在我的项目中,我们使用一个名为 OperationService 的超级 class,其中我们有所有通用的 GET、POST、PUT、PATCH 和 DELETE 调用。我在没有任何特定 URL 的情况下调用 GET,例如:"users/loadall",当我用这个 URL 建立一个名为 "loadAll" 的端点并点击它时,在我的本地配置中它起作用了完美!现在的问题出在我的服务器上,但这可能是其他问题。谢谢大家!
我正在尝试使用 rest 模板访问在我的 Eureka Server 中注册的另一个名为 "user-service" 的服务的端点。其他服务中的端点将 return 数据库中的所有数据,如您在此处所见:
@ResponseBody
@RequestMapping(method = RequestMethod.GET)
@ResponseStatus(value = HttpStatus.OK)
public Page<User> findAll() {
return userRepository.findAll();
}
我的 "client-service" 正在尝试通过此代码使用 "user-service" 的端点。 用户客户端:
public List<UsuarioVo> getUsers(){
HttpEntity headers = new HttpEntity(getHeaders());
String url = urlUserClient + "/users";
ResponseEntity<List<UserVo>> result= restTemplate.exchange(url, HttpMethod.GET, headers , new ParameterizedTypeReference<List<UserVo>>() {});
return new ObjectMapper().convertValue(result.getBody(), TypeFactory.defaultInstance().constructCollectionType(List.class, UserVo.class));
}
private HttpHeaders getHeaders() {
HttpHeaders headers = new HttpHeaders();
headers.set("username", request.getHeader("username"));
return headers;
}
客户端服务:
@ResponseBody
@RequestMapping(value = "/users", method = RequestMethod.GET)
@ResponseStatus(value = HttpStatus.OK)
@PreAuthorize("@searchRole.hasPermission('GET')")
public ResponseEntity<List<ProdutividadeDTO>> getProdutividade(){
List<UserVo> users = pessoaServiceClient.obterUsuarios();
}
当我到达终点时,我的 "user-service" 在执行所有 sql 代码后抛出异常:org.apache.catalina.connector.ClientAbortException: java.io.IOException: An established connection was aborted by the software in your host machine... Caused by: java.io.IOException: An established connection was aborted by the software in your host machine
有人知道为什么会这样吗?
本地我修好了!问题是,在我的项目中,我们使用一个名为 OperationService 的超级 class,其中我们有所有通用的 GET、POST、PUT、PATCH 和 DELETE 调用。我在没有任何特定 URL 的情况下调用 GET,例如:"users/loadall",当我用这个 URL 建立一个名为 "loadAll" 的端点并点击它时,在我的本地配置中它起作用了完美!现在的问题出在我的服务器上,但这可能是其他问题。谢谢大家!