TomEE 中的宿主依赖资源
Host dependent resources in TomEE
我正在 TomEE 中使用 EJB 开发 Web 应用程序。
为了分离应用程序的开发、测试和生产环境,我在 server.xml
中使用了不同的 <Host>
条目。因此可以通过不同的 URL 选择环境,例如 dev.myapp.example.tld
和 test.myapp.example.tld
.
资源(此时数据库连接)在tomee.xml
中定义为
<Resource id="myappDatabaseDevelopment" type="DataSource"> ...
<Resource id="myappDatabaseTest" type="DataSource"> ...
现在,测试主机中的应用程序将访问测试数据库,开发主机和开发数据库也是如此。但这是一个笨拙的解决方案,因为这两个资源有不同的 id
,所以我必须在 Java 代码中决定,取决于它 运行 所在的环境,选择哪个持久化单元.最好通过容器配置来管理它。但是我找不到任何方法来在 TomEE 配置文件中指定要在哪个主机上使用哪个资源。 server.xml
有主机,tomee.xml
有资源,但无法相互引用。
然而,TomEE 似乎可以识别不同的主机。当我在同一主机下部署同一个应用程序的两个版本,但应用程序(上下文)名称不同时,我会因为重复的部署 ID 而出错,而且由于在两个应用程序之间混合容器管理的 bean 会带来很多麻烦。使用不同的主机(和不同的 appBase
s)可以消除这些错误。
是否有任何方法可以根据主机对资源进行多种配置,具有相同的 id
?
看看 https://issues.apache.org/jira/browse/TOMEE-1449,在部署 ID 中添加主机应该就足够了。
我正在 TomEE 中使用 EJB 开发 Web 应用程序。
为了分离应用程序的开发、测试和生产环境,我在 server.xml
中使用了不同的 <Host>
条目。因此可以通过不同的 URL 选择环境,例如 dev.myapp.example.tld
和 test.myapp.example.tld
.
资源(此时数据库连接)在tomee.xml
中定义为
<Resource id="myappDatabaseDevelopment" type="DataSource"> ...
<Resource id="myappDatabaseTest" type="DataSource"> ...
现在,测试主机中的应用程序将访问测试数据库,开发主机和开发数据库也是如此。但这是一个笨拙的解决方案,因为这两个资源有不同的 id
,所以我必须在 Java 代码中决定,取决于它 运行 所在的环境,选择哪个持久化单元.最好通过容器配置来管理它。但是我找不到任何方法来在 TomEE 配置文件中指定要在哪个主机上使用哪个资源。 server.xml
有主机,tomee.xml
有资源,但无法相互引用。
然而,TomEE 似乎可以识别不同的主机。当我在同一主机下部署同一个应用程序的两个版本,但应用程序(上下文)名称不同时,我会因为重复的部署 ID 而出错,而且由于在两个应用程序之间混合容器管理的 bean 会带来很多麻烦。使用不同的主机(和不同的 appBase
s)可以消除这些错误。
是否有任何方法可以根据主机对资源进行多种配置,具有相同的 id
?
看看 https://issues.apache.org/jira/browse/TOMEE-1449,在部署 ID 中添加主机应该就足够了。