0

我正在尝试使用 Jersey 从我的 Jetty 服务器获取 JSON 格式的简单对象。

我不断收到错误:

SEVERE: A message body writer for Java class my.package.resources.Album, and Java type class my.package.resources.Album, and MIME media type application/json was not found

一个问题是我不确定将 POJOMappingFeature 与 Jetty 放在哪里,我尝试了以下方法,但都没有改变错误:

myServletHolder.setInitParameter("com.sun.jersey.api.json.POJOMappingFeature", "true");

myServletContextHandler.setInitParameter("com.sun.jersey.api.json.POJOMappingFeature", "true");

我知道 Jersey 的基本 REST 功能是有效的,因为在我尝试 JSON 输出之前,我使用了纯文本并且效果很好。

4

2 回答 2

6

当我看到这个没有回答时,我感到非常失望,因为我整天都在与它作斗争。终于想通了,所以这对我有用。

我在做什么:

    ServletHolder servletHolder = new ServletHolder(new ServletContainer(new PackagesResourceConfig("my.package.with.resources")));
    servletHolder.setInitParameter("com.sun.jersey.api.json.POJOMappingFeature", "true");

我需要做的:

    Map<String,Object> initMap = new HashMap<String, Object>();
    initMap.put("com.sun.jersey.api.json.POJOMappingFeature", "true");
    initMap.put("com.sun.jersey.config.property.packages", "my.package.with.resources");
    ServletHolder servletHolder = new ServletHolder(new ServletContainer(new PackagesResourceConfig(initMap)));

我必须确保将我的 Jersey 包和我的 POJOMappingFeature 标志指定为 init 参数。希望这可以帮助。

于 2012-05-17T19:30:34.330 回答
1

确保您的类路径中有jacksonjson-parser 和JAXBlib。

于 2012-05-17T19:38:42.417 回答