2015-06-10 61 views
8

編寫一個簡單的Jersey客戶端時,它正在使用XML數據,我遇到了這個異常「找不到媒體類型= application/xml的MessageBodyReader」。我所有的設置,包括作爲maven依賴項的球衣客戶端都很好。 我使用的版本是2.17。一旦我將版本降級到2.15,它開始正常工作。任何人都可以解釋需要包含在版本2.17中的依賴關係嗎?Jersey版本問題:找不到媒體類型= application/xml的MessageBodyReader

Maven的依賴(適用於2.15或更低)

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

的Java代碼段用於消費服務

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); 

回答

16

看一看27.3. Migrating from Jersey 2.15 to 2.16

27.3。 1.1。與核心分離的JAX-B提供者

從版本2.16開始,所有的JAX-B提供者都捆綁在一個單獨的模塊中。

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

感謝@ppeskillet它的工作。我的壞應該檢查文件。 – Anant

+1

感謝您的回答。直到找到你的答案,我幾乎死了。 :) –

+0

只有一個評論(對鐵餅開放)。如果分別導入BOM而不是依賴項,則可以避免這種情況。 –

相關問題