Java 手动处理Jersey/JAX-RS REST

Java 手动处理Jersey/JAX-RS REST,java,jersey,jax-rs,Java,Jersey,Jax Rs,我正在构建一个应用程序,希望在其中拦截HTTP请求并决定是否将它们传递给JAX-RS实现进行处理 我基本上只有一个过滤器和前端控制器servlet组合,希望servlet将路由委托给Jersey或我的“标准”路由器 我可以看到很多将Jersey用作servlet或启动HTTP服务器的示例,但似乎没有一种简便的方法可以使用HttpServletRequest/HttpServletResponse对并说“Jersey,给你,为我路由这个” 我是否遗漏了一些明显的信息?在这种情况下,我认为Reque

我正在构建一个应用程序,希望在其中拦截HTTP请求并决定是否将它们传递给JAX-RS实现进行处理

我基本上只有一个过滤器和前端控制器servlet组合,希望servlet将路由委托给Jersey或我的“标准”路由器

我可以看到很多将Jersey用作servlet或启动HTTP服务器的示例,但似乎没有一种简便的方法可以使用HttpServletRequest/HttpServletResponse对并说“Jersey,给你,为我路由这个”


我是否遗漏了一些明显的信息?

在这种情况下,我认为RequestDispatcher可能会有所帮助

RequestDispatcher对象可用于将请求转发到另一个资源,因此您可以尝试以下操作:

public class FrontServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        ServletContext sc = this.getServletContext();
        if (someCondition) {
            sc.getRequestDispatcher("/jersey/servlet").forward(req, resp);
        }else{
            sc.getRequestDispatcher("/standard/router").forward(req, resp);
        }
    }
}

这看起来是最好的办法。所以我无论如何都要配置Jersey servlet并将其映射到一个路径,但是手动向其发送请求。我的过滤器捕获所有传入的请求,因此我不担心在随机
/Jersey/servlet
路径上公开Jersey。