Java 在ContainerResponseFilter';s(JAX-RS 2)
我正在尝试移植到JAX-RS2 但是,我不知道如何从的重写方法中传递的I get中获取对象(如旧代码中所示)Java 在ContainerResponseFilter';s(JAX-RS 2),java,jax-ws,jax-rs,cors,Java,Jax Ws,Jax Rs,Cors,我正在尝试移植到JAX-RS2 但是,我不知道如何从的重写方法中传递的I get中获取对象(如旧代码中所示) 如果有一种更优雅的方法来使用JAX-RS2实现CORS,那当然会更好。提前感谢。您可以通过ContainerResponseSecontext直接访问响应: @Provider public class ResponseCorsFilter implements ContainerResponseFilter{ @Override public void filter(
如果有一种更优雅的方法来使用JAX-RS2实现CORS,那当然会更好。提前感谢。您可以通过
ContainerResponseSecontext
直接访问响应:
@Provider
public class ResponseCorsFilter implements ContainerResponseFilter{
@Override
public void filter(ContainerRequestContext requestContext,
ContainerResponseContext responseContext) throws IOException {
responseContext.getHeaders()
.putSingle("Access-Control-Allow-Origin","*");
responseContext.getHeaders()
.putSingle("Access-Control-Allow-Methods",
"GET, POST, PUT, DELETE");
List<String> reqHead=requestContext.getHeaders()
.get("Access-Control-Request-Headers");
if(null != reqHead){
responseContext.getHeaders()
.put("Access-Control-Allow-Headers",
new ArrayList<Object>(reqHead));
}
}
}
@Provider
公共类ResponseCorsFilter实现ContainerResponseFilter{
@凌驾
公共无效筛选器(ContainerRequestContext requestContext,
ContainerResponseContext(responseContext)引发IOException{
responseContext.getHeaders()
.putSingle(“访问控制允许原点“,”*”);
responseContext.getHeaders()
.putSingle(“访问控制允许方法”,
“获取、发布、放置、删除”);
List reqHead=requestContext.getHeaders()
.get(“访问控制请求头”);
如果(null!=reqHead){
responseContext.getHeaders()
.put(“访问控制允许标头”,
新ArrayList(reqHead));
}
}
}
但是使用此方法如何获得我的响应正文?有ContainerResponseContext.setEntity
方法可以替换整个实体。谢谢。。。我可以在ContainerRequestContext
上执行反向操作吗?我的意思是我想从过滤器中的ContainerRequestContext
获取POJO。从ContainerRequestContext
中,我们可以从中获得EntityStream
,但是我想要Entity
当我们进入ContainerResponseContext
时,有ContainerResponseContext.getEntity()
,根据您所需的属性。使用这种类型的过滤器无法获得对象,因为它绑定到请求/响应周期的外部级别。您需要的信息可以通过实现,并使用的方法procedure()
,传递到aroundReadFrom