web-dev-qa-db-ja.com

ジャージーのバージョンの問題:メディアタイプ= application / xmlのMessageBodyReaderが見つかりません

XMLデータを消費する単純なJerseyクライアントを作成しているときに、「メディアタイプ= application/xmlのMessageBodyReaderが見つかりません」という例外に遭遇しました。 Mavenの依存関係としてのjersey-clientを含め、私の設定はすべて問題ありませんでした。使っていたバージョンは2.17でした。バージョンを2.15に下げると、問題なく動作し始めました。バージョン2.17が機能するために必要な依存関係を誰かが説明できますか?.

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

27.3を見てください。 Jersey 2.15から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>
23
Paul Samsotha