Ich verwende Jackson JSON in einer Spring 3 MVC Anwendung. Um nicht jedes einzelne Datumsfeld zu serialisieren, habe ich einen benutzerdefinierten Objectmapper erstellt, der ein bestimmtes DateFormat verwendet:
@Component("jacksonObjectMapper")
public class CustomObjectMapper extends ObjectMapper
{
Logger log = Logger.getLogger(CustomObjectMapper.class);
@PostConstruct
public void afterProps()
{
log.info("PostConstruct... RUNNING");
//ISO 8601
getSerializationConfig().setDateFormat(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SZ"));
}
//constructors...
}
Dieser benutzerdefinierte ObjectMapper wird in den JsonConverter injiziert:
<bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes" value="application/json" />
<property name="objectMapper" ref="jacksonObjectMapper" /> <!-- defined in CustomObjectMapper -->
</bean>
In den Protokollen gibt es keine Ausnahmen und die Serialisierung funktioniert, aber das Datumsformat wird nicht übernommen, sondern es wird einfach ein Zeitstempel serialisiert. Die @PostConstruct-Anmerkung funktioniert, die Protokollanweisung in der Methode ist in den Protokollen enthalten.
Weiß jemand, warum dies nicht funktioniert?