2016-09-21 84 views
0

我有一个使用JSF + CDI + JPA和Wildfly服务器的Web应用程序。直到现在Wildfly正在管理交易,授权安全,电子邮件服务...所以我的问题是我需要我的系统访问多个数据库。为了让客户端登录,他把他们的登录名和密码以及选择数据库。JSF + Wildfly动态连接多个数据库

我已经Google了很多,作为多租户的解决方案似乎并不很有趣。我也考虑过承担服务器的这个责任,在应用程序中建立连接,并且仍然设法通常使用注入,但是我遇到了很多麻烦,比如安全管理和Wildfly之前管理的所有事情。

关于如何解决这个问题的一些提示或想法?

+0

JTA事务可以跨多个资源(因此,数据库)。 – Tiny

+0

我正在使用JTA事务,但我无法弄清楚如何在不为每个数据库创建持久性单元的情况下执行此操作。就我而言,每个客户组织都会有一个数据库。我不想每次都有一个新的客户端时生成一个.war文件...(所有的数据库都是相同的结构) – Eduardo

回答

0

检出Hibernate multitenancyDATABASE模式。这在WildFly 10中可以很好地工作。

基本上,您只需要实现一个MultiTenantConnectionProvider,它可以为当前请求提供到适当数据库的连接。

这应该解决您在数据库级别的问题。您仍然需要弄清楚如何确定当前请求的正确数据库,例如从当前HTTP请求的URI中导出它并将其存储在一个@RequestScoped bean中。