2016-10-14 5 views
3

저지 클라이언트와 java.util.Optional를지도로 JSON 형식과 저지 클라이언트로 보내, 서버는 아래의 예외가 발생합니다 :어떻게이 같은 유형 java.util.Optional의 필드와 DTO를

com.fasterxml.jackson.databind.JsonMappingException: Can not instantiate value of type [simple type, class java.util.Optional<java.lang.Long>] from Integral number (1); no single-int-arg constructor/factory method 

그것은 저지 클라이언트 java.util.Optional를 사용하는 것이 가능하다?

감사합니다.

답변

3

당신이 Long 당신이지고를 벗어난 Optional을 작성해야하므로 JSON, 그것은 긴 포함, 옵션으로 포함되어 있지 않습니다

@JsonCreator 
public Person(@JsonProperty("id") Long id) { 
    this.id = Optional.ofNullable(id); 
} 
+0

덕분에 많이. 이게 내 문제를 해결해 !! – LucaA

1

pom.xmljackson-datatype-jdk8 의존성을 추가

<dependency> 
    <groupId>com.fasterxml.jackson.datatype</groupId> 
    <artifactId>jackson-datatype-jdk8</artifactId> 
    <version>2.6.3</version> 
</dependency> 

ObjectMapper 인스턴스를 생성하고 Jdk8Module 등록 :

을 2,

다음 Client 인스턴스에서 JacksonJsonProvider 등록 :

Client client = ClientBuilder.newClient().register(new JacksonJsonProvider(mapper)); 
+0

우리는 drowizard 프레임 워크를 사용합니다. 이미 구성을 만들었습니다. 감사. – LucaA