我试图使用 rest 模板在我的 Eureka Server 中注册的另一个名为 "user-service "的服务中打一个端点。另一个服务中的端点将从数据库中返回所有数据,如你所见。
@ResponseBody
@RequestMapping(method = RequestMethod.GET)
@ResponseStatus(value = HttpStatus.OK)
public Page<User> findAll() {
return userRepository.findAll();
}
我的 "客户端服务 "试图使用 "用户服务 "的端点,代码如下: UserClient:
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;
}
ClientService:
@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();
}
当我点击enpoint时,我的 "用户服务 "在执行完所有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的超级类,在这个类中,我们有所有通用的GET、POST、PUT、PATCH和DELETE调用。我在调用GET时没有任何特定的URL,例如:"Usersloadall",当我用这个URL建立一个名为 "loadAll "的端点并点击它时,在我的本地配置中,它完美地工作了。现在的问题是在我的服务器上,但这可能是其他问题。谢谢大家