我正在尝试使用 put 方法,使用 GenericEntity 将通用列表发送到球衣 servlet。我已经看到很多请求通用列表的示例,但没有一个提供它。
所以我服务器上的代码是:
@PUT
@Produces(MediaType.TEXT_HTML)
public String doPutHtml(GenericType<List<SystemInfo>> systemInfoList) {
System.out.println(systemInfoList.toString());
return "OK";
}
客户端发送 put 请求的代码:
WebResource ws;
Configuration conf = ConfigurationFactory.getConfigurationFactory()
.getConfiguration();
Client client = Client.create();
ws = client.resource("http://" + conf.getDatacenterURL() + ":"+ conf.getDatacenterPort() + "/services/systemInfo");
GenericEntity entity = new GenericEntity<List<SystemInfo>>(systemInfoList) {};
String response = ws.accept(MediaType.TEXT_HTML).type(MediaType.APPLICATION_XML).put(String.class, entity);
当我运行客户端代码时,我得到了这个异常:
com.sun.jersey.api.client.ClientHandlerException: com.sun.jersey.api.client.ClientHandlerException: A message body writer for Java type, class java.util.ArrayList, and MIME media type, application/octet-stream, was not found
所以我的问题是,是否可以通过这种方式发送通用列表?如果这是不可能的,还有其他选择吗?