0

我在端口 80 上的 IIS Web 服务器上运行了一个前端。它是使用 angular.js 框架用 HTML5 编写的。

我有一个 RESTful 后端在端口 8084 上的 GlassFish 应用程序服务器上运行。它是使用 Jersey JAX-RS 实现编写的。

后端使用在 Singleton 类的构造函数中创建的 Neo4J 数据库。因此,当不存在所述类的实例时,将创建数据库。如果实例确实存在,它会使用存储为属性的相同 GraphDatabaseService。我这样做是为了防止 Lock Store 错误。如果该类不是单例,它每次都会尝试为相同的数据库路径创建一个新的 GraphDatabaseService,并且一次只能有一个。

然而,我的应用程序的需求发生了变化。需要登录,每个用户都将获得自己的数据库。用户名将在数据库路径中使用,并且必须传递给(现在仍然是)单例类。

如何更改我的设置,以便每个用户都有自己的数据库,并且该用户进行的每个 REST 调用都在该数据库上执行。用户应该能够同时使用 Web 应用程序。

4

2 回答 2

0

看来这是不可能的。我尝试通过映射多个实例中的多个实例。不幸的是,当请求在另一个数据库中做某事时,似乎一个数据库中的操作被中止。

于 2013-02-21T13:35:08.340 回答
0

您必须从 httpRequest 中检索用户信息。
如何访问 HTTP 请求?
无论如何,将类实例绑定到 http 会话的最佳方法是使用有状态的 ejb,但 restful 架构并非设计为有状态的,实际上每个 rest 请求都将发生在他自己的 http 会话中。
阅读https://community.jboss.org/thread/179777了解更多信息

于 2013-02-21T14:12:11.083 回答