Jersey can produce Listlt;Tgt; but cannot Response.ok(Listlt;Tgt;).build()?(Jersey 可以产生 Listlt;Tgt;但不能 Response.ok(Listlt;Tgt;).build()?)
问题描述
Jersey 1.6 可以生产:
Jersey 1.6 can produce:
@Path("/stock")
public class StockResource {
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Stock> get() {
Stock stock = new Stock();
stock.setQuantity(3);
return Lists.newArrayList(stock);
}
}
但不能这样做:
@Path("/stock")
public class StockResource {
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response get() {
Stock stock = new Stock();
stock.setQuantity(3);
return Response.ok(Lists.newArrayList(stock)).build();
}
}
给出错误:找不到 Java 类 java.util.ArrayList、Java 类型类 java.util.ArrayList 和 MIME 媒体类型 application/json 的消息正文编写器
这会阻止使用 HTTP 状态代码和标头.
This prevent the use of HTTP status code and headers.
推荐答案
可以通过以下方式在响应中嵌入 List
:
It is possible to embed a List<T>
in a Response the following way:
@Path("/stock")
public class StockResource {
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response get() {
Stock stock = new Stock();
stock.setQuantity(3);
GenericEntity<List<Stock>> entity =
new GenericEntity<List<Stock>>(Lists.newArrayList(stock)) {};
return Response.ok(entity).build();
}
}
客户端必须使用以下行来获取List<T>
:
The client have to use the following lines to get the List<T>
:
public List<Stock> getStockList() {
WebResource resource = Client.create().resource(server.uri());
ClientResponse clientResponse =
resource.path("stock")
.type(MediaType.APPLICATION_JSON)
.get(ClientResponse.class);
return clientResponse.getEntity(new GenericType<List<Stock>>() {
});
}
这篇关于Jersey 可以产生 List<T>但不能 Response.ok(List<T>).build()?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Jersey 可以产生 List<T>但不能 Response.ok(List<T>).build()?


- value & 是什么意思?0xff 在 Java 中做什么? 2022-01-01
- Safepoint+stats 日志,输出 JDK12 中没有 vmop 操作 2022-01-01
- Java包名称中单词分隔符的约定是什么? 2022-01-01
- Spring Boot连接到使用仲裁器运行的MongoDB副本集 2022-01-01
- 将log4j 1.2配置转换为log4j 2配置 2022-01-01
- Eclipse 插件更新错误日志在哪里? 2022-01-01
- C++ 和 Java 进程之间的共享内存 2022-01-01
- Jersey REST 客户端:发布多部分数据 2022-01-01
- 从 finally 块返回时 Java 的奇怪行为 2022-01-01
- 如何使用WebFilter实现授权头检查 2022-01-01