与@DataSourceDefinition
一起使用我想从使用此@DataSourceDefinition
注释的应用程序(或部署描述符中的等效数据源元素)加载DataSource类。
这基本上适用于每个服务器the test I added in the Java EE 7 samples project。
例如,考虑web.xml中的这个数据源定义:
<data-source>
<name>java:app/MyApp/MyDS</name>
<class-name>org.h2.jdbcx.JdbcDataSource</class-name>
<url>jdbc:h2:mem:test</url>
</data-source>
包含org.h2.jdbcx.JdbcDataSource
的jar将驻留在WEB-INF / lib。
在针对服务器that's automatically downloaded进行测试时,CI测试非常方便,并且预先知道部署的.war的名称(由Arquillian控制)。
虽然几乎每个服务器都支持此功能,但Liberty 16.0.2会对java:app/MyApp/MyDS
或java:global/MyDS
引发以下异常:
CWNEN0011E:注入引擎无法处理绑定 由于以下错误导致的元数据: java.sql.SQLNonTransientException:J2CA8022E:应用程序xyz23-zvf 没有任何提供org.h2.jdbcx.JdbcDataSource的共享库 for dataSource java:global / MyDS。
IBM instructions指的是设置一个存在于本地文件系统上的共享库,但是对于几类数据源(例如那些只对应用程序具有内部含义的数据源),以及上面提到的CI测试这是不切实际的。
有没有办法让Liberty像大多数其他Java EE服务器一样从应用程序加载数据源?