如何在JAX-RS中实现HTTP方法的默认功能?

时间:2016-02-09 19:47:54

标签: java rest jax-rs

我使用的是JAX-RS,它有@OPTIONS@HEAD方法的默认实现,但我想提供不同的功能。

我目前所做的是:

@GET
@Path("path/to/resource")
@Produces(MediaType.APPLICATION_JSON)
public Response resourceCall(){
    // Normal method implementation
}

@OPTIONS
@Path("path/to/resource")
@Produces(MediaType.APPLICATION_JSON)
public Response resourceCall(){
    Response.status(Response.Status.METHOD_NOT_ALLOWED).build();
}

所以基本上我创建了对每个资源的新调用。但是我希望在这里有一个 catch-all 方法来处理我对@OPTION@HEAD的所有通话。

如何实现此类功能?

谢谢

修改

为了清楚起见。我知道如何使用Servlet过滤器执行此操作,但我想知道JAX-RS是否具有内置的类似功能是特定情况。

2 个答案:

答案 0 :(得分:1)

由于您使用泽西岛,泽西岛有一项功能,允许您programmatically add and modify resources。因此,您可以向所有资源添加_scriptOPTIONS方法,而无需触及您的资源类。下面的示例除了发送带有HEAD消息的405之外什么都不做。可能不是你想要的,但你应该能够弄清楚你需要修改什么来获得你想要的东西。

No <Method>

答案 1 :(得分:0)

默认选项处理程序通过

实现
@OPTIONS
@Path("{path: .*}")
public Response allOptions() {
}