Java 为什么Response.getEntity()为空?

Java 为什么Response.getEntity()为空?,java,jakarta-ee,resources,jax-rs,Java,Jakarta Ee,Resources,Jax Rs,环境(JBossAS7,Wildfly 8) 在此之前,我能够深入研究一个使用jax-rs的项目,其中一个jax-rs资源的任务是通过网关连接另一个jax-rs资源。 在实现时,我找到了Response.newFrom(),它听起来非常适合网关组件执行的那种任务。 java文档还声明它可以用于这种用例 请注意,如果实体由未使用的输入流支持,则复制对该流的引用 但实际上第一次测试是红色的。因此,进一步挖掘,我发现了以下实现 public static ResponseBuilder fromRes

环境(JBossAS7,Wildfly 8)

在此之前,我能够深入研究一个使用jax-rs的项目,其中一个jax-rs资源的任务是通过网关连接另一个jax-rs资源。 在实现时,我找到了Response.newFrom(),它听起来非常适合网关组件执行的那种任务。 java文档还声明它可以用于这种用例 请注意,如果实体由未使用的输入流支持,则复制对该流的引用

但实际上第一次测试是红色的。因此,进一步挖掘,我发现了以下实现

public static ResponseBuilder fromResponse(Response response) {
    ResponseBuilder b = status(response.getStatus());
    if (response.hasEntity()) {
        b.entity(response.getEntity());
    }
    for (String headerName : response.getHeaders().keySet()) {
        List<Object> headerValues = response.getHeaders().get(headerName);
        for (Object headerValue : headerValues) {
            b.header(headerName, headerValue);
        }
    }
    return b;
}

我不太喜欢完全读取流,所以如果有人知道为什么getEntity()返回null。。。请随意

部分
b.entity(response.getEntity())
应该负责响应流的复制。该死的你是对的,getter的javadoc说如果有未使用的输入流,它应该返回一个,但是wildfly 8.1.0.Final返回null。。甚至jboss as 7在调用
getEntity()时也返回null
@maressPart
b.entity(response.getEntity())
应该负责响应流的复制。该死的你是对的,getter的javadoc说它应该返回一个未使用的输入流(如果有),但是wildfly 8.1.0.Final返回null。甚至jboss as 7在调用
getEntity()时也返回null
@maress
    private <R> Response asNewResponse(Response response, GenericType<EntityType> sourceType, Function<EntityType, R> transformer ) {
    boolean backed = response.bufferEntity();
    if (backed) {
        if (response.getStatus() == Response.Status.OK.getStatusCode()) {
            Addresses entity = response.readEntity(sourceType);
            return Response.status(response.getStatus()).entity(transformer.apply(entity)).build();
        } else
            return Response.status(response.getStatus()).entity(response.readEntity(new GenericType<String>() {
            })).build();
    } else {
        if (response.getEntity() instanceof EntityType) {
            return Response.status(response.getStatus()).entity(transformer.apply((EntityType)response.getEntity())).build();
        }
        return Response.status(response.getStatus()).entity(response.getEntity()).build();
    }
}