Ich habe eine JAX-RS-Anwendung mit JBoss AS 7.1, und ich POST/GET JSON und XML-Objekten, die Daten (java.util.Date) schließen ein:Serialize Datum in einem JSON REST Web Service als ISO-8601-String
Wenn ich @Produce ("application/xml") für die Methode get verwende, werden die Objekte als XML serialisiert und die Daten in ISO-8601-Strings konvertiert (z. B. "2012-12-10T14: 50: 12.123 +02: 00 ").
Wenn jedoch @Produce ("application/json") für die get-Methode verwendet wird, sind die Daten in den JSON-Objekten Zeitstempel (z. B. "1355147452530") anstelle von ISO-8601-Zeichenfolgen.
Wie kann ich die JAX-RS-Implementierung (RESTEasy) konfigurieren, um Datumsangaben im JSON-Format als ISO-8601-Strings anstelle von Zeitstempeln zu serialisieren?
Vielen Dank für Ihre Antworten.
Anmerkung: Ich habe auch versucht, eine benutzerdefinierte JAX-RS-Provider zu verwenden, um die JSON-Serialisierung für Termine
@Provider
@Produces(MediaType.APPLICATION_JSON)
public class CustomJsonDateProvider implements MessageBodyWriter<Date>
{
...
}
Dieser Anbieter zu tun scheint von Resteasy auf JBoss Startup registriert werden:
[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.
aber es wird nie benutzt!
Meine JBoss EAP 7 JAX-RS implentation ist und Resteasy Ich habe‘ Ich möchte eine Jackson-Abhängigkeit hinzufügen. Nach einem Tag Recherche habe ich Ihre Lösung gefunden ('JacksonConfig'). Ich habe Maven Abhängigkeit ' com.fasterxml.jackson.core jackson-databind 2.8.7 ' und verwenden ein benutzerdefiniertes Datumsformat 'objectMapper.setDateFormat (neu Simple (" dd.MM.yyyy "))' anstatt der Standard-Einstellung mit 'objectMapper.configure()' –