現在、Jersey と Jetty が組み込まれた単純な REST インターフェイスを構築しています。
Server server = new Server(8080);
ContextHandlerCollection contexts = new ContextHandlerCollection();
ServletContextHandler servletContextHandler = new ServletContextHandler(server, "/", ServletContextHandler.SESSIONS);
ServletHolder sh = new ServletHolder(ServletContainer.class);
servletContextHandler.addServlet(sh, "/*");
server.setHandler(servletContextHandler);
sh.setInitParameter("com.sun.jersey.config.property.packages", "my.package.containing.jersey.resource");
私のリソースでは@GET, @PUT, @DELETE
、すべてハッシュマップからオブジェクトを取得/配置/削除するメソッドを定義しています。
HashMap
現在、リソース クラスで をstatic として定義していますConcurrentHashMap
が、これまでのところ問題なく動作しています。
public class MyResource {
private static final Map<String, MyObjects> myRepository = new ConcurrentHashMap<String, MyObjects>();
@GET
...
@PUT
...
}
ただし、HashMap
潜在的な他のリソースやサーブレットにアクセスできるようにする予定です。
したがって、より広い範囲のアプリケーション コンテキストに追加する必要があります。
よくわかりませんが、これをどのように行うのが最善でしょうか?
理想的にはプログラム的に。
(jetty.webapp に WebAppContext があることを確認しましたが、これが正しい方法かどうかはわかりません)。