programing

ResponseStatusException에서 "trace" 필드를 삭제합니다.

nicescript 2023. 2. 11. 16:31
반응형

ResponseStatusException에서 "trace" 필드를 삭제합니다.

스프링 컨트롤러에서는ResponseStatusException엔티티를 찾을 수 없는 경우 다음과 같이 입력합니다.

@GetMapping("/categories/{id}")
  public ResponseEntity<Category> getCategoryById(@PathVariable(value = "id") String id) {
    try {
      return new ResponseEntity<Category>(categoryService.findById(id), HttpStatus.OK);
    } catch (CategoryNotFoundException ex) {
      throw new ResponseStatusException(HttpStatus.NOT_FOUND, ex.getMessage());
    }
  }

그 대답은 다음과 같습니다.

{
    "timestamp": "2019-02-22T12:25:29.913+0000",
    "status": 404,
    "error": "Not Found",
    "message": "could not find category with ID: XYZ'.",
    "path": "/categories/XYZ"
}

그러나 응답에는 긴 필드도 포함됩니다."trace"네스트 예외는 예외입니다.
트레이스 필드를 제거할 방법이 있나요?

열다.application.properties다음 행을 추가합니다.

server.error.include-stacktrace=never

종속성에 "spring-boot-devtools"가 있는 경우 "trace" 필드가 있는 것 같습니다.devtools를 제외한 후 출력에 이러한 트레이스가 표시되지 않습니다.

도움이 되길 바랍니다.

spring-boot-devtools속성을 설정합니다.server.error.include-stacktrace 그렇듯이.

devtools를 유지하면서도 트레이스를 제거할 수 있습니다.application.yml:

server:
  error:
    include-stacktrace: on_trace_param

파티에 늦었다는 것은 알지만, 최근 우연히 시나리오를 발견하고 다른 솔루션으로 해결했습니다.저에게는 위의 솔루션이 모두 효과가 없었기 때문입니다.

사용법Spring-boot-devtools, 그리고 자동으로 설정됩니다.

그래서 스택 트레이스를 오버라이드하여 억제했습니다.fillInStackTrace다음과 같이 예외 클래스의 메서드를 사용합니다.

public class DuplicateFoundException extends RuntimeException {
    @Override
    public synchronized Throwable fillInStackTrace() {
        return this;
    }
}

ps1: 이 기사를 참조했습니다.

ps2: 다른 답변에서도 다음 권장 해결책을 시도해 볼 수 있습니다.

(내 경우는, 어느쪽도 효과가 없었다.

사용하고 있다면application.propertiesfile 속성 파일에 다음 행을 추가합니다.

server.error.include-stacktrace=on_trace_param

사용하고 있다면application.ymlfile, yml 파일에 다음 행을 추가합니다.

server:
  error:
    include-stacktrace: on_trace_param

server.error.disc-stacktrace=에서 동작했습니다.ON_PARAM

on_trace_param을 시도했을 때 이클립스는 값이 유효하지 않음을 나타냈습니다.

언급URL : https://stackoverflow.com/questions/54827407/remove-trace-field-from-responsestatusexception

반응형