我正在TomEE中使用EJB开发Web应用程序。
为了分离应用程序的开发,测试和生产环境,我在<Host>
中使用了不同的server.xml
条目。因此,可以通过不同的网址选择环境,例如dev.myapp.example.tld
和test.myapp.example.tld
。
资源(此时数据库连接)在tomee.xml
中定义为
<Resource id="myappDatabaseDevelopment" type="DataSource"> ...
<Resource id="myappDatabaseTest" type="DataSource"> ...
现在,测试主机中的应用程序应访问测试数据库,对于dev主机和dev数据库也是如此。但这是一个笨拙的解决方案,因为这两个资源有不同的id
,所以我必须根据它运行的环境决定Java代码,选择哪个持久性单元。最好通过容器配置来管理它。但我找不到任何方法在TomEE配置文件中指定哪个资源用于哪个主机。 server.xml
有主机,tomee.xml
有资源,但没办法引用另一个。
appBase
)会使这些错误消失。
是否有任何方法可以拥有多个资源配置,具有相同的id
,具体取决于主机?