簡體   English   中英

找不到Java類的消息正文閱讀器(非Maven)

[英]Message body reader for Java class not found (non-Maven)

這與這里的問題略有不同。 我沒有使用Maven,但在類路徑中包含了jersey-bundle-1.17.1。 它似乎包含了jersey-json中的所有類。 但是我也將jersey-json添加到classpath和WEB-INF / lib中,並得到相同的錯誤。 我正在發布json

{ to: 'John', company: 'Costo' }

有什么明顯的嗎?

收件人是具有兩個字符串字段的簡單POJO-to和company

@POST
@Path("/saveit")
@Consumes(MediaType.APPLICATION_JSON )
@Produces( MediaType.APPLICATION_JSON )
public Response saveit(Recipient rec) {
         System.out.println(rec); 
         ....
}

但是我仍然得到錯誤:

Apr 20, 2014 8:17:23 PM com.sun.jersey.spi.container.ContainerRequest getEntity    
SEVERE: A message body reader for Java class com.company.guestbook.model.Recipient, and Java type class com.company.guestbook.model.Recipient, and MIME media type application/json was not found.
    The registered message body readers compatible with the MIME media type are:
    application/json ->
      com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$App
      com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$App
      com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$App
    */* ->
      com.sun.jersey.core.impl.provider.entity.FormProvider
      ...

這應該在編譯時失敗,因為您的方法實現沒有返回對象(即,它是一個void返回),但是方法簽名指示已返回一個Response對象。 您的實現只是將Recipient對象打印到標准輸出(可能會出現在容器的日志文件中)。

我看到您沒有使用Maven管理依賴項(很好),但是您是否添加了Jersey必需的依賴項? 例如,此錯誤報告看起來與您的錯誤報告相似。

暫無
暫無

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

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