繁体   English   中英

JAX-RS 2.0-如何从Response对象获取实体

[英]JAX-RS 2.0 - How to get entity from Response object

我正在使用带有Dropwizard 0.8.0-rc1的JAX-RS 2.0,但我真的不知道如何从javax.ws.rs.core.Response对象中提取我的实体。 response.getEntity()给我ByteArrayOutputStream 我可以创建两个请求-一个给我标题和链接,另一个给我响应实体,但这似乎是一个愚蠢,浪费和不清楚的事情。 有没有办法从响应对象获取实体?

我当前的测试代码如下:

public class GroupsResourceTest {

    public static String CONFIGURATION_FILE = "src/test/resources/test-conf.yml";

    @ClassRule
    public final static DropwizardAppRule<BpmConsoleConfiguration> RULE =
            new DropwizardAppRule<>(BpmConsoleApplication.class, CONFIGURATION_FILE);

    static Client client;

    @BeforeClass
    public static void initClient(){
        client = new JerseyClientBuilder(RULE.getEnvironment()).build("client");
        client.register(HttpAuthenticationFeature.basic(User.ADMIN.login, User.ADMIN.password));
    }

    @Test
    public void shouldGetGroups() {
        //when
        WebTarget resource = target("/groups");
        List<String> groups = resource.request().get(new GenericType<>(List.class)); //first request
        Response response = resource.request().get(); //second request
        Link self = response.getLink("self");
        //then
        assertThat(self.getUri().getPath()).isEqualTo("/groups");
        assertThat(groups).contains(User.ADMIN.login);

    }

    public WebTarget target(String path){
        String url = String.format("http://localhost:%d%s", RULE.getLocalPort(), path);
        return client.target(url);
    }

}

您可以使用:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM