我在端口80上的IIS Web服务器上运行了一个前端。它使用angular.js框架用HTML5编写。
我在端口8084上的GlassFish应用服务器上运行RESTful后端。它是使用Jersey JAX-RS实现编写的。
后端使用Neo4J数据库,该数据库是在Singleton类的构造函数中创建的。因此,当不存在所述类的实例时,将创建数据库。如果实例存在,则它使用作为属性存储的相同GraphDatabaseService。我这样做是为了防止Lock Store错误。如果类不是单例,那么每次尝试创建一个新的GraphDatabaseService到同一个数据库路径,并且你一次只能有一个。
然而,我的应用程序的需求已经改变。需要登录,每个用户都将获得自己的数据库。用户名将在数据库路径中使用,并且必须传递给(现在仍然是)单例类。
如何更改我的设置,以便每个用户都可以获得自己的数据库,并且该用户在该数据库上执行每个RESTcall。用户应该能够同时使用Web应用程序。
答案 0 :(得分:0)
看来这是不可能的。我尝试通过在multiton中映射多个实例。不幸的是,当请求在另一个数据库中执行某些操作时,似乎中止了一个数据库中的操作。
答案 1 :(得分:0)
您必须从httpRequest检索用户信息
How do I access the HTTP request?
无论如何将类实例绑定到http会话的最佳方法是使用statefull ejb BUT
restful architecture并不是有状态的,事实上每个rest请求都会在他自己的http会话中发生
阅读https://community.jboss.org/thread/179777了解更多信息