No JAX-RS 2.1, a biblioteca interna usada para serialização e desserialização entre objetos JSON e Java foi mudada de Jackson para Yasson. Yasson é a implementação de referência de JSON-B. O Jackson e o Yasson serializarão objetos relacionados ao tempo de diferentes maneiras, por exemplo:
| Jackson | Yasson | |
|---|---|---|
| java.util.Date | 726213720000 | 1993-02-05T06:02:00Z [ UTC ] |
| java.util.Calendar | 726213720000 | 1993-02-05T00:00:00-06:00 [ América/Chicago ] |
Quaisquer métodos de recurso JAX-RS que produzem ou consomem dados de tipo JSON podem ser afetados. Essa regra sinaliza quaisquer campos java.util.Date ou java.util.Calendar que estão contidos em um objeto produzido ou consumido por um
método de recurso JAX-RS.
A seguir está um exemplo de métodos de recurso JAX-RS que produzem e consomem um Objeto Java contendo um campo java.util.Date e java.util.Calendar:
Essa regra sinaliza os java.util.Date e java.util.Calendar no objeto DataObject objeto.
Para essa regra, será fornecida uma correção automatizada para adicionar a anotação @JsonbDateFormat(value = JsonbDateFormat.TIME_IN_MILLIS ) a esses campos para converter a saída em época milliseconds.After a correção automatizada é aplicada, a classe DataObject será atualizada da seguinte forma:
Observação: Para acessar o @javax.json.bind.annotation.JsonbDateFormat a anotação será adicionada pela correção automatizada. A correção automatizada adicionará o recurso jsonb ao seu arquivo de configuração Liberty server.xml arquivo de configuração. Por exemplo, inclua o recurso jsonb-1.0 se você estiver usando o
recurso jaxrs-2.1.
Para obter mais detalhes sobre as diferenças de comportamento entre o Jackson e o Yasson, consulte o artigo É o momento para um padrão de ligação JSON? comparando o comportamento do Jackson e do JSON-B.