有什么方法可以跨多个 JSP 页面共享 EmbeddedGraphDatabase 实例?问题是,一旦您启动 tomcat 服务器并为特定的 Neo4j DB 实例化 EmbeddedGraphDatabase,如果您尝试为相同的实例实例化另一个 graphDB,数据库将保持锁定状态。
问问题
160 次
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 回答