7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Jerseyで、MessageBodyProviderNotFoundExceptionが出ちゃった時。

Posted at

もしくは、Jerseyで任意のオブジェクトをJSONで返却したいとき。

問題発生!

JerseyでListとかをJSONでレスポンスしたいときに以下のExceptionが出てしまう時があります。

javax.servlet.ServletException: org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/json

これの対処法をご紹介します。

カスタムプロバイダーをつくろうよ!

JAX-RSのサンプルをこちらに記載しましたが、この一部が問題の解決方法です。カスタムプロバイダを作成すること。
デフォルトのJSONプロバイダだとListオブジェクトなどをJSON化することができないため、サンプルコード中のJSONProvider.javaを参考にして、カスタムプロバイダーを作成してください。サンプルではJSON変換のためにJSONICを使用しています。
コツは、web.xmlでプロバイダーを読み込めるようにすることです。

7
5
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?