TomEE中的主机相关资源

时间:2016-05-22 11:51:27

标签: java-ee tomee

我正在TomEE中使用EJB开发Web应用程序。

为了分离应用程序的开发,测试和生产环境,我在<Host>中使用了不同的server.xml条目。因此,可以通过不同的网址选择环境,例如dev.myapp.example.tldtest.myapp.example.tld

资源(此时数据库连接)在tomee.xml中定义为

<Resource id="myappDatabaseDevelopment" type="DataSource"> ...

<Resource id="myappDatabaseTest" type="DataSource"> ...

现在,测试主机中的应用程序应访问测试数据库,对于dev主机和dev数据库也是如此。但这是一个笨拙的解决方案,因为这两个资源有不同的id,所以我必须根据它运行的环境决定Java代码,选择哪个持久性单元。最好通过容器配置来管理它。但我找不到任何方法在TomEE配置文件中指定哪个资源用于哪个主机。 server.xml有主机,tomee.xml有资源,但没办法引用另一个。

但不知何故,TomEE似乎认识到了不同的主机。当我在同一主机下部署相同应用程序的两个版本但是不同的应用程序(上下文)名称时,由于重复的部署ID而导致错误,并且由于在两个应用程序之间混合容器管理的bean而导致很多麻烦。使用不同的主机(以及不同的appBase)会使这些错误消失。

是否有任何方法可以拥有多个资源配置,具有相同的id,具体取决于主机?

1 个答案:

答案 0 :(得分:2)

看一下https://issues.apache.org/jira/browse/TOMEE-1449,在部署ID中添加主机就足够了。