4

JSON コードを返すこの REST サービスがあります。

@GET
@Path("/mypath")
@Produces(MediaType.APPLICATION_JSON)
public Response getS() {
    Map<String, String> map = new LinkedHashMap<String, String>();

    map.put(key1, val1);
    map.put(key2, val2);

    return Response.ok(map, MediaType.APPLICATION_JSON).build();
}

このサービスは、Tomcat サーバーにデプロイされます。フレームワークとして RESTeasy を使用しています。サービスにアクセスしようとすると、次のようになります。

タイプ: java.util.LinkedHashMap のメディア タイプ: application/json の応答オブジェクトの MessageBodyWriter が見つかりませんでした。

何が問題なのかわかりませんでした。

前もって感謝します

4

1 に答える 1

1

アプリケーションをどのようにデプロイしますか? どのアプリケーション サーバーを使用していますか? RestEasy のバージョンは? (web.xml または Application クラスで) 指定した RestEasy 構成は何ですか? Resteasy は、オブジェクトのシリアライゼーション/デシリアライゼーションをプロバイダに依存しています。これらのプロバイダーは、JAX-RS アプリケーションのクラスパスに含まれている必要があります。ビルド、アプリケーション パッケージ、ランタイム環境によっては、これらのプロバイダーが見つからない場合があります。さらに、プロバイダーの検出を構成できます。たとえば、クラスパス内のすべての privoders を自動的に検出したり、conf で明示的に言及されているもののみを使用したりできます。application/json 機能を備えた一般的に使用されるプロバイダーは、resteasy-jackson-providerresteasy-jettison-provider です。これらの少なくとも 1 つがクラスパスで使用可能であることを確認してください。

于 2015-07-25T16:46:11.473 に答える