当前位置: 首页 > 面试题库 >

球衣可以生产清单 但不能Response.ok(List)。建立()?

秦弘亮
2023-03-14
问题内容

球衣1.6可以产生:

@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();
    }
}

给出错误: A message body writer for Java class java.util.ArrayList, and Java type class java.util.ArrayList, and MIME media type application/json was not found

这样可以防止使用HTTP状态代码和标头。


问题答案:

可以List<T>通过以下方式在响应中嵌入:

@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>

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>>() {
    });
}


 类似资料:
  • 当客户端请求不可接受的MIME类型时,如何防止Jersey在客户端喷出HTML页面?我想使用ExceptionMapper,但我不确定要捕获什么异常,或者这是否是处理406的最佳方法。 谢啦!

  • 问题内容: 我是单元测试的新手,我想测试项目中的某些球衣服务。我们正在使用Junit。请指导我以更好的方式编写测试用例。 码: 上面提到的服务工作正常,我想编写junit测试用例来测试上面提到的方法。上面的方法将以JSON格式检索产品列表()。我想编写测试用例以检查响应状态和json格式。 注意: 我们使用的是Jersey 1.17.1版本。 帮助将不胜感激:) 问题答案: 对于Jersey We

  • 我需要在java上开发简单的web服务。我是java技术新手,根据几篇文章,我决定将JAX-RS(Jersey)与嵌入式http服务器(Grizzly2)结合使用,因为它看起来适合构建REST服务,部署似乎很简单。 在我的开发环境中,所有工作都很完美(使用IntllijIdea)。 但当我尝试在测试服务器上部署时,每个请求都返回“500内部错误”(偶数/application.wadl) 简单资源

  • 如spring boot博客所述 我尝试自定义我的对象序列化。 在我的配置中添加了一个新的配置bean之后 当我尝试输出类用户的实例时,json结果不在CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES中 也许我需要在我的Jersey配置中注册一些东西来激活我的自定义obejctMapper配置 谢谢

  • 我在一个数字海洋Ubuntu虚拟机上运行一个独立的清漆实例,基本上运行良好。该设置用于加载一个位于其他任何地方的旧wordpress服务器。这工作得很好,但我很难清除内容。当谈到清除时,我的意思是使URL的缓存无效,以迫使清漆从后端获取新版本(只是为了确保我看到了一些关于清除/禁止的恼怒)。 我已经为清除设置了一个ACL,就我所能看到的varnishlog的清除被接受了-从WordPress博客的

  • 我的问题是:为什么我不能自动连接我的地图与接口,而我可以与实现? 多谢了。