返回序列化的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。