我使用的是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
是否具有内置的类似功能是特定情况。
答案 0 :(得分:1)
由于您使用泽西岛,泽西岛有一项功能,允许您programmatically add and modify resources。因此,您可以向所有资源添加_script
和OPTIONS
方法,而无需触及您的资源类。下面的示例除了发送带有HEAD
消息的405之外什么都不做。可能不是你想要的,但你应该能够弄清楚你需要修改什么来获得你想要的东西。
No <Method>
答案 1 :(得分:0)
默认选项处理程序通过
实现@OPTIONS
@Path("{path: .*}")
public Response allOptions() {
}