Java 8 date/time type 'java.time.Instant'는 기본적으로 지원되지 않습니다. 문제:
java.time을 이해하는데 어려움을 겪고 있습니다.인스턴트 라이브러리Instant Library를 구현하기 위한 간단한 솔루션 방법이 없는지는 잘 모르겠습니다.저는 MongoDB에서 CRUD 작업을 통해 RESTful 서비스를 만든 스프링 부트 프로젝트를 가지고 있습니다.DTO에서 Instant updated On & Instant created On을 소개하기 전까지는 모든 것이 괜찮았습니다.
장애가 발생하고 있는 POST 응답의 샘플 코드를 다음에 나타냅니다.
@Override
public ResponseEntity<ResponseDto> create(@RequestBody CLMDto CLMDto) {
CLMDto createdCLMDto =
CLMService.create(CLMDto);
return ResponseEntity.status(HttpStatus.CREATED)
.header(
RESPONSE_HEADER_LOCATION, CLM_URL + "/" + createdCLMDto.getId())
.body(ResponseDto.builder().value(createdCLMDto).build()); //--------------------->**Failing here**
}
내 응답 DTO는 다음과 같습니다.
@Data
@Builder
@JsonInclude(JsonInclude.Include.NON_DEFAULT)
public class ResponseDto {
private Integer count;
private Object value;
private Object error;
private Object info;
}
및 CLMDto
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AdminDataDto {
private Instant createdOn;
private Instant updatedOn;
@JsonProperty(value = "updatedByName", access = JsonProperty.Access.READ_ONLY)
private String updatedByName;
}
디버거에서 예외가 발생하는 위치에 CLMDto 변수가 생성되었습니다.
createdOn:Instant@193 "2021-03-27T11:53:24.774765300Z"
updatedByName:test
updatedOn:Instant@195 "2021-03-27T11:53:24.774765300Z"
Lombok 플러그인을 사용하고 있기 때문에 내부에서 디버깅할 수 없고 자동 생성된 코드의 근본 원인을 찾을 수 없습니다.나는 해결책을 찾는 것이 아니라 여기서 일이 잘못될 수 있는 제안을 찾고 있다.나의 정확한 실수는
Type definition error: [simple type, class java.time.Instant]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException:
Java 8 date/time type `java.time.Instant` not supported by default: add Module \"com.fasterxml.jackson.datatype:jackson-datatype-jsr310\" to enable
handling (through reference chain:
com.abc.service.dto.ResponseDto[\"value\"]->com.abc.dto.AdminDataDto[\"createdOn\"])",
말할 필요도 없이, 저는 이미 업데이트된 메이븐 라이브러리에 제공된 솔루션을 시도했지만 성공하지 못했습니다.이 라이브러리에서 StackOverflow에 대해 많은 질문을 찾았지만 아무도 이 라이브러리를 구현하는 가장 쉬운 방법을 설명하지 않았습니다.
pom.xml 의존관계는 이미 팔로우 하고 있습니다.
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
여기 제시된 솔루션 Java 8 date time type은 Spring Boot에서 오브젝트로 시리얼화되어 있습니다.
프로젝트에 다음과 같은 아티팩트가 있습니까?
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
스프링 소스 코드에 따르면 클래스가com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
클래스 패스에 존재합니다.JavaTimeModule
등록해야 합니다.
언급URL : https://stackoverflow.com/questions/66831223/java-8-date-time-type-java-time-instant-not-supported-by-default-issue
'programing' 카테고리의 다른 글
소품을 통해 제공되는 이미지가 로드되었을 때 감지하고 반응에서 상태를 변경하는 방법은 무엇입니까? (0) | 2023.03.09 |
---|---|
각도 8 및 Json 가져오기 (0) | 2023.03.04 |
Uncaught TypeError: 정의되지 않은 SweetAlert & jquery의 속성 'then'을 읽을 수 없습니다. (0) | 2023.03.04 |
어떻게 하면 다른 소품들을 넘겨서 반향을 일으킬 수 있을까요? (0) | 2023.03.04 |
제트 교차 원점 필터 (0) | 2023.03.04 |