Дата сериализации в веб-сервисе JSON REST в виде строки ISO-8601
У меня есть приложение JAX-RS, использующее JBoss AS 7.1, и я POST / GET объекты JSON и XML, которые включают Dates (java.util.Date)
@XmlRootElement
@XmlAccessorType(XmlAccessField.FIELD)
public class MyObject implements Serializable
{
@XmlSchemaType(name = "dateTime")
private Date date;
...
}
Когда я использую @Produce ("Приложение / XML») в методе get объекты сериализуются в виде XML, а даты преобразуются в строки ISO-8601 (например, "2012-12-10T14: 50: 12,123 + 02: 00").
Однако, если я использую @Produce ("Применение / JSON») в методе get даты в объектах JSON являются временными метками (например, "1355147452530") вместо строк ISO-8601.
Как я могу сконфигурировать реализацию JAX-RS (RESTEasy) для сериализации дат в формате JSON в виде строк ISO-8601 вместо меток времени?
Спасибо за ответ.
Примечание. Я также попытался использовать собственный поставщик JAX-RS для сериализации JSON для дат.
@Provider
@Produces(MediaType.APPLICATION_JSON)
public class CustomJsonDateProvider implements MessageBodyWriter
{
...
}
Этот провайдер, кажется, зарегистрирован RESTeasy при запуске JBoss:
[org.jboss.jaxrs] Adding JAX-RS provider classes: package.CustomJsonDateProvider
...
[org.jboss.resteasy.cdi.CdiInjectorFactory] No CDI beans found for class package.CustomJsonDateProvider. Using default ConstructorInjector.
но это никогда не используется!