2017-10-05 11 views
1

저지 클라이언트로 옵션 클래스를 얻으려고합니다. 원격 서버가 Optional.empty()을 반환하면이 오류가 발생합니다.저지 클라이언트로 옵션 클래스를 얻으려면

Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "present" (class java.util.Optional), not marked as ignorable 

내 코드

ObjectMapper mapper = new ObjectMapper(); 
mapper.registerModule(new Jdk8Module()); 

Client client = ClientBuilder.newClient().register(new JacksonJsonProvider(mapper)); 
Optional<MyType> myType = client.target(TARGET_URL) 
        .path(PATH) 
        .request() 
        .get(Optional.class); 

내 관련 의존성은

<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-databind</artifactId> 
    <version>2.9.1</version> 
</dependency> 

<dependency> 
    <groupId>com.fasterxml.jackson.datatype</groupId> 
    <artifactId>jackson-datatype-jsr310</artifactId> 
    <version>2.9.1</version> 
</dependency> 

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

편집

원격 서버에서 실행되는 스프링 부팅 응용 프로그램입니다 응용 프로그램으로. 앱에 jackson-datatype-jdk8 의존성을 추가했습니다. 이 후 인식 할 수없는 필드 예외이 해결되었지만 반환 개체가 null입니다. 이 전에, 우편 배달부는 다음과 같은 결과

{ 
    "present": false 
} 

을 반환하지만 지금

null 
+1

this? https://github.com/FasterXML/jackson-modules-java8 – Eugene

+1

@Eugene 불행히도, 작동하지 않았다. – Rhododendron

답변

0

당신은 @JsonInclude(Include.NON_EMPTY)의 사용 등이 제기 주석을 만들 수 있습니다. 널 (null) 또는 무엇을 빈 것으로 간주됩니다 값 값을 갖는 속성 만이 아닌을 있음을 나타냅니다

값이 포함된다.

+0

클라이언트와 떨어져있는 클래스 최상위 레벨에서이 주석을 추가했지만 여전히 오류가 발생합니다. – Rhododendron

+0

해결할 수 있었습니까? 오류? – bewithaman