2017-10-05 6 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> 

EDIT

リモートサーバー上で実行すると、春のブートアプリですアプリケーションとして。私はアプリにjackson-datatype-jdk8依存関係を追加しました。その後、認識されないフィールド例外が解決されましたが、戻りオブジェクトはnullです。この前に、郵便配達は、あなたがこのような提出に注釈を付ける@JsonInclude(Include.NON_EMPTY)を利用することができ、以下の結果

{ 
    "present": false 
} 

しかし、今

null 
+1

これは? https://github.com/FasterXML/jackson-modules-java8 – Eugene

+1

@Eugene残念ながら、それは動作しませんでした – Rhododendron

答えて

0

を返されました。 値の値を持つプロパティだけがヌルであるということ、または空であると考えられるものを示し

値が含まれるべきありません。

+0

私はクライアントと離れて私のクラスのトップレベルでこの注釈を追加しましたが、私はまだエラーを取得 – Rhododendron

+0

あなたが解決することができましたエラー? – bewithaman

関連する問題