Jackson in Apache TomEE 7.0 im CXF-RS-Webclient und JAX-RS-Client verwenden

1 minute read Published:

Dieser Artikel stammt aus meinen früheren Wordpress-Instanzen und steht hier aus Gründen der Nostalgie.

Beim Versuch den JSON-Provider Jackson zum Deserialisieren im CXF-Rest-Client bzw. dem JAX-RS-Client-API in TomEE 7 zu verwenden, kommt es zu der Situation, dass Apache Johnzon gezogen wird, egal was in TomEE konfiguriert wird.

Ich hatte die Frage auf Stackoverflow gestellt und als Antwort erhalten, dass Jackson sich als Provider für */* registriert, Johnzon für application/json und die Wahl des Providers einen Best-Match-Algorithmus verwendet.

Die Lösung besteht darin, Jackson zu erweitern und entsprechend zu annotieren:

1
2
3
4
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class NarrowJacksonJaxb‌JsonProvider
extends com.fasterxml.jackson.jaxrs.json.JacksonJaxb‌JsonProvider {}