我希望能够以编程方式在 Jetty 中使用变量注册 servlet 上下文路径,但我似乎无法弄清楚如何在 Jetty 中自行完成。
有一些要求使它变得困难:
- 我必须使用 Maven 进行依赖管理。
- 我必须使用 javax.servlet.Filter 的特定子类进行身份验证。
鉴于与现有环境的冲突,Play!并且 Grails 已经出局,即使 JAX-RS 注释很简洁,我也能够以编程方式在配置文件中更改这些内容,而无需重新编译。
基本上,我正在寻找类似于http://www.playframework.org/documentation/1.0/routes的路线管理,但我无法找到朝着这个方向前进的起点。
我可以使用我需要的任何嵌入式服务器,只要我遵守上述规定,不幸的是,这意味着我认为我不能使用类似http://code.joejag.com/2011/creating-a-simple-java的东西-restful-service-using-jersey-and-maven/。
给定 Jetty,我会想象代码看起来像这样:
Server server = new Server(8080);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
server.setHandler(context);
// add other random stuff to the context
context.addServlet(new ServletHolder(new ThingServlet()),"/things/{id}");
// the above line could easily come from a config file using Class.forName, etc.
server.start();
server.join();
我完全愿意接受建议、嵌入式 Web 服务器等等。我习惯于用他们的路由在 Django/Pylons/Werkzeug 中编写更多内容,几天前我被卷入了这个问题,这是我迄今为止必须使用的,所以任何指导或帮助将不胜感激!