JerseyでMessageBodyProviderNotFoundExceptionが発生したので解決した
大した記事ではないですが、調べても出てこなかったので忘れないためにもメモします。(調べて出てこなかったのは基本的すぎるから?)
Jerseyで適当なメソッドを作ってブラウザからアクセスしました。@Produces(MediaType.APPLICATION_JSON)を指定していたので、結果はJSONで返るはずが、なぜか例外が発生でHTTP 500発生。
例外メッセージはこんな感じです。
org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/json, type=class com.tsukaby.hoge.ChartData, genericType=class com.tsukaby.hoge.ChartData.
メソッドの戻り値は単純なPOJOですし、nullでもないし、普通にJSONが返されればいいものの・・・。
結果は色々見ると、pom.xmlに以下の記述が不足していたからでした。
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
</dependency>
上記を追加して、再デプロイで解決しました。こんなんで1時間以上無駄にしました。