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

1 つの問題は、Jetty で POJOMappingFeature を配置する場所がわからないことです。次のことを試しましたが、どちらもエラーを変更しません。

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

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

JSON出力を試す前にプレーンテキストを使用していたので、Jerseyの基本的なREST機能が機能していることはわかっています。

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 フラグを初期パラメータとして指定する必要がありました。お役に立てれば。

于 2012-05-17T19:30:34.330 に答える
1

jacksonクラスパスにjson-parser とJAXBlibがあることを確認してください。

于 2012-05-17T19:38:42.417 に答える