プログラムでサーブレット コンテキスト パスを Jetty の変数に登録できるようにしたいのですが、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 でルーティングを使ってもっと書くことに慣れていて、数日前にこれに放り込まれました。