2013-06-01 3 views
26

Sto usando Jersey 1.17.1 con Jackson 2.2.1.Jersey Jackson e codehaus vs. fasterxml

Sembra che Jackson abbia cambiato pacchetti da org.codehaus a com.fasterxml. Ho configurato tutto il mio codice correttamente e usando l'ultimo jackson. Tuttavia, sembra che Jersey stia ancora inserendo org.codehaus.jackson. C'è un modo per mitigare questo o devo attenermi ai pacchetti codehaus fino a quando la maglia non viene aggiornata per usare i pacchetti fasterxml?

risposta

22

Le vecchie librerie di Jackson vengono avviate come dipendenze dall'arte jersey-json. Quando

<dependency> 
    <groupId>com.sun.jersey</groupId> 
    <artifactId>jersey-json</artifactId> 
    <version>1.17</version> 
</dependency> 

è incluso nel vostro POM si otterrà automaticamente versioni delle librerie org.codehaus.jackson inclusi nel progetto. Sfortunatamente, jersey-json ha delle dipendenze del tempo di collegamento sulle classi Jackson, quindi non puoi semplicemente usare exclusions. Quello che vuoi fare invece è ometterlo interamente. È davvero una specie di libreria di wrapper attorno a un gruppo di librerie JSON di cui non hai necessariamente bisogno. Una volta rimosso, è possibile aggiungere le dipendenze per i Jackson 2.2.1 biblioteche e fornitore di JAX-RS:

<dependency> 
    <groupId>com.fasterxml.jackson.jaxrs</groupId> 
    <artifactId>jackson-jaxrs-json-provider</artifactId> 
    <version>2.2.1</version> 
</dependency> 

Si noti che con la maglia-JSON rimosso non si dispone più di una Stax2, Jettison, o il fornitore di JAXB. Se hai bisogno di questi, dovrai localizzarli e aggiungere le dipendenze manualmente.

+3

A partire da Jackson 2.2, il percorso del codice è https://github.com/FasterXML/jackson-jaxrs-providers/blob/master/json/pom.xml. – koppor