Run*_*lse 5 apache-tomee hikaricp
我想在 TomEE 中测试 hikaricp。我已将 jar 文件添加到我的 lib 文件夹中,并尝试定义如下资源:
<Resource id="myJtaDs" type="DataSource" class-name="com.zaxxer.hikari.HikariJNDIFactory" factory-name="getObjectInstance">
....
</Resource>
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我在启动时收到以下错误:
org.apache.xbean.recipe.MissingFactoryMethodException: Instance factory method has signature public com.zaxxer.hikari.HikariJNDIFactory.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable) but expected signature public com.zaxxer.hikari.HikariJNDIFactory.getObjectInstance()
Run Code Online (Sandbox Code Playgroud)
如何在 tomee.xml 中定义 HikariCP 数据源?
您可以将 包裹HikariDataSource在 a 中JTADataSourceWrapperFactory以获得 JTA 支持(请参阅邮件档案)。
然后,您可以通过tomee.xml或定义它resource.xml,如下所示:
<Resource id="hikariCP" class-name="com.zaxxer.hikari.HikariDataSource">
driverClassName org.hsqldb.jdbcDriver
jdbcUrl jdbc:hsqldb:mem:demo
username sa
password
<!-- other properties as required -->
</Resource>
<Resource id="demo" type="DataSource" class-name="org.apache.openejb.resource.jdbc.managed.JTADataSourceWrapperFactory" factory-name="create">
Delegate = hikariCP
</Resource>
Run Code Online (Sandbox Code Playgroud)
在您persistence.xml添加数据源中通过
<jta-data-source>java:openejb/Resource/demo</jta-data-source>
Run Code Online (Sandbox Code Playgroud)
只需确保 HikariCP 库在您的类路径中可用即可。
旁注:设置hibernate.connection.provider_class将在 Hibernate 内创建一个连接池,该连接池不由容器管理。
| 归档时间: |
|
| 查看次数: |
594 次 |
| 最近记录: |