在Jersey中为不匹配的REST方法使用默认方法

时间:2010-11-05 06:55:29

标签: rest jersey

我知道这不太“安静”但是,我想知道是否以及如何处理所有与我的REST资源中的任何方法都不匹配的请求(我想将这些请求代理到另一台服务器)。例如,它可以是一种方法:

@GET 
@Path("*") 
public Response defaultMethod(@Context HttpServletRequest request, @Context HttpServletResponse response) 
{ 
    // do proxying here 
} 

我怎样才能做到这一点?

BR,

SerkanC

2 个答案:

答案 0 :(得分:9)

@Path("/{default: .*}")

这适用于:

  • http://example.com/someUnexpectedPath
  • http://example.com/someUnexpectedPath/withAdditionalSubPaths
  • http://example.com/someUnexpectedPath/withAdditionalSubPaths?andParams=whatever

答案 1 :(得分:2)

一种可能的选择是定义自定义404映射。由于404s处理所有不匹配的请求,因此它应该捕获所有未定义的URL。

我将以下内容添加到我的web.xml文件

 <error-page>
    <error-code>404</error-code>
    <location>/error/404</location>
  </error-page>

位置是您要将请求定向到的路径。然后只需将呼叫定义为正常。