簡體   English   中英

Json在Jersey REST應用程序中響應嚴重錯誤

[英]Json response severe error in jersey REST application

我正在使用Maven學習JERSEY REST API。 我遇到以下錯誤,我遇到了GET請求。 有趣的一點是,當我僅返回特定的類對象時,就得到了所需的結果,但是當我返回所有這些對象的映射時,就遇到了狀態500-內部服務器錯誤的錯誤。 請提出建議。

錯誤:

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:我在pom.xml文件中添加了與json相關的元素,如下所示

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

我正在使用Maven v2.16

添加以下依賴

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

</dependency>

MOXy和Map不是朋友……我建議您使用Jackson而不是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文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM