Env (Jboss AS 7, 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 !!
для всех, у кого такая же проблема, я закончил это.
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();
}
}
im не так радуется полностью чтению потока, поэтому, если кто-нибудь знает, почему getEntity () возвращает null ... не стесняйтесь
java,java-ee,resources,jax-rs,
Env (Jboss AS 7, 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 !!
для всех, у кого такая же проблема, я закончил это.
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();
}
}
im не так радуется полностью чтению потока, поэтому, если кто-нибудь знает, почему getEntity () возвращает null ... не стесняйтесь
00Java, Java-Е.Е., ресурсы, JAX-RS,