2016-07-29 20 views
0

私はMavenを使用してJERSEY REST APIを学習しています。私はホエイ私はGET要求を打つエラーを次のようになってきています。興味深い点は、特定のクラスオブジェクトだけを返すときに、私は望みの結果を得ていますが、これらすべてのオブジェクトのマップを返すと、Status 500 - Internal Server Errorでこのエラーが発生します。提案してください。JerseyレスポンスJersey RESTアプリケーションの重大エラー

エラー:がち

SEVERE: MessageBodyWriter not found for media type=application/json, 
type=class java.util.HashMap, genericType=java.util.Map<java.lang.Integer, message.Message>. 

がエラー:

@GET 
@Produces(MediaType.APPLICATION_JSON) 
public Map<Integer,Message> getAll(){ 
    ms.sample(); 
    return ms.getAllMessages(); 

} 

同じコードが、特定のオブジェクトを返しますが、正常に動作します:

@GET 
@Produces(MediaType.APPLICATION_JSON) 
public Message getAll(){ 
    ms.sample(); 
    return ms.getAllMessages().get(1); 

} 

PS:私はでJSON関連要素を追加しましたpom.xmlファイルは次のようになります。

<dependency> 
     <groupId>org.glassfish.jersey.media</groupId> 
     <artifactId>jersey-media-moxy</artifactId> 
    </dependency> 

私はMavenのv2.16を使用してい

+0

ジャクソン依存関係はありますか? – sidgate

答えて

0

MOXYとMap sが、私はあなたが(デ)シリアライズする代わりにMOXYのジャクソンを使用することをお勧めします...友人ではありませんJSON。

、それを行うjersey-media-moxy依存関係を削除し、以下を追加します。詳細については

<dependency> 
    <groupId>org.glassfish.jersey.media</groupId> 
    <artifactId>jersey-media-json-jackson</artifactId> 
    <version>2.23.1</version> 
</dependency> 

を、Jersey documentationをご確認ください。

+0

ありがとう、それは働いた。しかしもう1つ、なぜpom.xmlファイルにデフォルトのMoxy関連要素があるのですか? – Aditya

0

追加次の依存

<dependency> 
    <groupId>org.glassfish.jersey.media</groupId> 
    <artifactId>jersey-media-json-jackson</artifactId> 

</dependency> 
関連する問題