2015-06-10 13 views
8

Durante la scrittura di un semplice client Jersey che utilizzava dati XML, ho trovato questa eccezione "MessageBodyReader non trovata per tipo di supporto = application/xml". Tutte le mie impostazioni, incluso il client della maglia come dipendenze di maven, andavano bene. La versione che stavo usando era 2.17. Una volta degradata la versione a 2.15, ha iniziato a funzionare correttamente. Qualcuno può spiegare quali dipendenze devono essere incluse affinché la versione 2.17 funzioni.Problema di versione Jersey: MessageBodyReader non trovato per tipo di supporto = application/xml

Maven Dipendenza (funziona su 2,15 e inferiore)

<dependency> 
    <groupId>org.glassfish.jersey.core</groupId> 
    <artifactId>jersey-client</artifactId> 
    <version>${jersey.version}</version> 
</dependency> 

Java Code Snippet per consumare il servizio

Client c = ClientBuilder.newClient(); 
WebTarget target = null; 
target = c.target(Main.BASE_URI_XML); 

String customerId = "415D7AB5"; 

XYZ response = target.path(customerId).request(MediaType.APPLICATION_XML).get(XYZ.class); 

risposta

16

Dai un'occhiata alla 27.3. Migrating from Jersey 2.15 to 2.16

27,3. 1.1. Provider JAX-B separati dal core

Dalla versione 2.16 in poi, tutti i provider JAX-B vengono raggruppati in un modulo separato.

<dependency> 
    <groupId>org.glassfish.jersey.media</groupId> 
    <artifactId>jersey-media-jaxb</artifactId> 
    <version>2.17</version> 
</dependency> 
+0

Grazie a @ppeskillet ha funzionato. Il mio cattivo dovrebbe aver controllato la documentazione. – Anant

+1

Grazie per la risposta. Ero quasi morto finché non ho trovato la tua risposta. :) –

+0

Solo un'osservazione (aperta al discus). Se importi il ​​DBA invece delle dipendenze separatamente, puoi evitarlo. –