Spring 引导 "redirect:/path" 不起作用 - 实际上返回字符串 "redirect:/path"
Spring Boot "redirect:/path" doesn't work - actually returning the String "redirect:/path"
我正在尝试从我的一个控制器重定向到另一个控制器。它应该使用关键字“redirect”,但我没有重定向到其他控制器,而是收到了这样的响应:
这是我的控制器:
@RestController
@Api(value = ConsentConstants.GET_HEALTH_V1, tags = {ConsentConstants.SWAGGER_API})
@Slf4j
@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class GetHealthController implements GetHealthApi {
final Tracer tracer;
@Override
public Object getHealthCheck() {
return "redirect:/actuator/health";
}
}
我尝试重定向的原因是因为当我部署我的服务时健康检查(spring 引导执行器)不工作。在本地它工作正常,但在部署后我收到 401 未经授权的 /actuator/health 端点(其他端点工作正常)。所以我想尝试使用其中一个工作端点(例如 status/health 然后重定向到 /actuator/health)
我没有使用 Spring MVC,这有什么不同吗?
这种重定向方式仅适用于常规控制器,不适用于休息服务。无法解析名为 /actuator/health.
的 'view'
这仅在存在具有要解析的注册文件名的视图时有效:
return "redirect:registration";
要在 restcontroller 中重定向,您可以这样做:
@GetMapping("/healthcheck")
public void getHealthCheck(HttpServletResponse response) throws IOException {
response.sendRedirect("/actuator/health");
}
但是,如果您只想更改 Spring 执行器的运行状况端点,请参阅 here。
在application.properties中:
management.endpoints.web.base-path=/whatever
management.endpoints.web.path-mapping.health=healthcheck
我正在尝试从我的一个控制器重定向到另一个控制器。它应该使用关键字“redirect”,但我没有重定向到其他控制器,而是收到了这样的响应:
这是我的控制器:
@RestController
@Api(value = ConsentConstants.GET_HEALTH_V1, tags = {ConsentConstants.SWAGGER_API})
@Slf4j
@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class GetHealthController implements GetHealthApi {
final Tracer tracer;
@Override
public Object getHealthCheck() {
return "redirect:/actuator/health";
}
}
我尝试重定向的原因是因为当我部署我的服务时健康检查(spring 引导执行器)不工作。在本地它工作正常,但在部署后我收到 401 未经授权的 /actuator/health 端点(其他端点工作正常)。所以我想尝试使用其中一个工作端点(例如 status/health 然后重定向到 /actuator/health)
我没有使用 Spring MVC,这有什么不同吗?
这种重定向方式仅适用于常规控制器,不适用于休息服务。无法解析名为 /actuator/health.
的 'view'这仅在存在具有要解析的注册文件名的视图时有效:
return "redirect:registration";
要在 restcontroller 中重定向,您可以这样做:
@GetMapping("/healthcheck")
public void getHealthCheck(HttpServletResponse response) throws IOException {
response.sendRedirect("/actuator/health");
}
但是,如果您只想更改 Spring 执行器的运行状况端点,请参阅 here。
在application.properties中:
management.endpoints.web.base-path=/whatever
management.endpoints.web.path-mapping.health=healthcheck