この質問が何度か聞かれたことは知っていますが、提案された解決策を使用しても、それを機能させることができません。
私が必要とするのは、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>
私が何を間違っているのか教えていただけませんか?ありがとうございました :)