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