1

この質問が何度か聞かれたことは知っていますが、提案された解決策を使用しても、それを機能させることができません。

私が必要とするのは、json オブジェクトの一部として入ってくる LocalDate を消費することです。次の形式で:

 "date":{"year":2016,"month":10,"day":9}

示唆されているように、私は自分の XmlAdapter を使用しています

import javax.xml.bind.annotation.adapters.XmlAdapter;
import java.time.LocalDate;

public class LocalDateAdapter extends XmlAdapter<String, LocalDate> {
@Override
public LocalDate unmarshal(String s) throws Exception {
    return LocalDate.parse(s);
}
@Override
public String marshal(LocalDate localDate) throws Exception {
    return localDate.toString();
}
}

そして、モデルクラスで注釈を使用しています。

@XmlJavaTypeAdapter(type=LocalDate.class, value = LocalDateAdapter.class)
protected LocalDate date;

@XmlJavaTypeAdapter(type=LocalDate.class, value = LocalDateAdapter.class)
public LocalDate getDate() {
    return date;
}

デバッグ時に、デバッガーは非整列化メソッドをヒットしますが、文字列パラメーターは空です "".

私は jersey-media-moxy を使用しています。これが私の pom の一部です。

 <dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.glassfish.jersey</groupId>
            <artifactId>jersey-bom</artifactId>
            <version>${jersey.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
 <dependency>
        <groupId>org.glassfish.grizzly</groupId>
        <artifactId>grizzly-http-server</artifactId>
        <version>2.3.28</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-moxy</artifactId>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-grizzly2-http</artifactId>
    </dependency>

私が何を間違っているのか教えていただけませんか?ありがとうございました :)

4

0 に答える 0