1

複数の JSP ページで EmbeddedGraphDatabase インスタンスを共有する方法はありますか? 問題は、Tomcat サーバーを起動し、特定の Neo4j DB に対して EmbeddedGraphDatabase をインスタンス化すると、同じデータベースに対して別の graphDB をインスタンス化しようとすると、データベースがロックされたままになることです。

4

1 に答える 1

0

私が理解しているように、これEmbeddedGraphDatabaseはあなたのオブジェクトであり、そのインスタンスをアプリケーションの複数の JSP ページで共有したいと考えています。

そのインスタンスをアプリケーション スコープに配置する必要があります。これにより、アプリケーションのすべてのクラスと JSP ページに表示されます。

ServletContextListenerそのためには、インターフェースを実装する必要があります。

public class YourContextListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent event) {
       EmbeddedGraphDatabase db = new EmbeddedGraphDatabase();
       event.getServletContext().setAttribute("yourAttrName", db);
    }

    @Override
    public void contextDestroyed(ServletContextEvent event) {
       event.getServletContext().removeAttribute("yourAttrName");
    }
}

web.xml で定義します

<listener>
    <listener-class>your.package.YourContextListener</listener-class>
</listener>

そして、それを使用するには:

EmbeddedGraphDatabase db = getServletContext().getAttribute("yourAttrName");

お役に立てれば。

于 2012-06-10T19:30:28.593 に答える