Я использую Spring 3 для создания некоторых служб ReST. При размещении XML-кода Spring обрабатывает поля String, но не конвертирует поля Date. Вот пример:
@XmlRootElement(name = "TestObj")
@XmlAccessorType(XmlAccessType.FIELD)
public class TestObj {
@XmlElement(type = Date.class, name = "Birthdate")
@XmlJavaTypeAdapter(BirthdateXmlAdapter.class)
private Date birthdate;
@XmlElement(type = String.class, name = "Name")
private String name;
// getters and setters ...
}
Я подумал, что, возможно, требуется XmlAdapter, и создал его для маршалла / анмаршала в соответствии с нужным мне форматом даты. BirthdateXmlAdapter вызывается, но передается нулевое значение, в котором, конечно, устанавливается поле рождения с нулевым значением.
@RequestMapping(value="/test", method=RequestMethod.POST)
public TestObj test(@RequestBody TestObj testObj) {
logger.debug(testObj.toString());
return testObj;
}
Довольно простой пример использования здесь. Я использую RestClient для POST XML и вижу, что атрибут «name» правильно установлен в моем TestObj, но дата рождения равна нулю.