シリアライズされた HashMap を返すことについて多くの質問がありますが、あまり良い答えが見つかりませんでした。
ここで、次のような残りのサービスを簡単に作成したいと思います。
@XmlElement(name = "Calibration")
private HashMap<String, Double> entry = new HashMap<String, Double>();
次に、REST サービスで:
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/entry")
public HashMap<String, Double> current() {
System.out.println("calibration request");
entry.put("test", 3.00);
return entry;
}
サービスが呼び出されると、javax.ws.rs.WebApplicationException がスローされます。
com.sun.jersey.api.MessageException: Java クラス java.util.HashMap、Java タイプ java.util.HashMap、および MIME メディア タイプ application/json のメッセージ本文ライターが見つかりませんでした。
役に立つ場合に備えて、私のpom.xml:
<dependency>
<groupId>com.sun.grizzly</groupId>
<artifactId>grizzly-servlet-webserver</artifactId>
<version>1.9.18-i</version>
</dependency>
<dependency>
<groupId>com.sun.grizzly</groupId>
<artifactId>grizzly-comet-webserver</artifactId>
<version>1.9.46</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-grizzly</artifactId>
<version>1.9.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.9.1</version>
</dependency>
Grizzly を webContainer として使用しています。