ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

如何使用HikariCP在Jboss中配置JNDI数据源?

2019-06-24 11:06:51  阅读:525  来源: 互联网

标签:java postgresql spring jboss hikaricp


如何使用HikariCP在jboss配置文件中配置JNDI数据源我在Hikari的帮助内容中找不到任何东西,只有Tomcat配置.

我有一个Spring webb应用程序,我在应用程序中定义了一个数据源,我想将其移动到JNDI数据源.

我的数据源定义是:

<datasource jndi-name="java:jboss/datasources/mydatasource" pool-name="mydatasource" enabled="true" use-java-context="true">
     <connection-url>jdbc:postgresql://localhost:5432/database</connection-url>
     <driver-class>org.postgresql.Driver</driver-class>
     <datasource-class>com.zaxxer.hikari.HikariDataSource</datasource-class>
     <driver>postgresql</driver>
     <pool>
        <min-pool-size>5</min-pool-size>
        <max-pool-size>10</max-pool-size>
     </pool>
     <security>
         <user-name>user</user-name>
         <password>password</password>
     </security>
</datasource>

和驱动程序定义:

<driver name="postgresql" module="org.postgresql.jdbc">
    <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
</driver>

我在其他方面遇到这个错误:

ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS014613: Operation (“add”) failed – address: ([
(“subsystem” => “datasources”),
(“data-source” => “mydatasource”)
]) – failure description: {“JBAS014771: Services with missing/unavailable dependencies” => [
“jboss.driver-demander.java:jboss/datasources/mydatasource is missing [jboss.jdbc-driver.postgresql]”,
“jboss.data-source.java:jboss/datasources/mydatasource is missing [jboss.jdbc-driver.postgresql]”
]}

那么配置这个的正确方法是什么?

编辑:

按照创建Tomcat资源的指南并使用此question中提供的信息,我已经了解了这个DataSource定义:

<datasource jta="false" jndi-name="java:jboss/mydatasource" pool-name="mydatasource" enabled="true" use-ccm="false">
    <connection-url>jdbc:postgresql://localhost:5432/databasename</connection-url>
    <driver-class>org.postgresql.Driver</driver-class>
    <driver>postgresql</driver>
    <pool>
        <min-pool-size>5</min-pool-size>
        <max-pool-size>10</max-pool-size>
        <flush-strategy>FailingConnectionOnly</flush-strategy>
    </pool>
    <security>
        <user-name>username</user-name>
        <password>password</password>
    </security>
    <validation>
        <validate-on-match>false</validate-on-match>
        <background-validation>false</background-validation>
    </validation>
    <statement>
         <share-prepared-statements>false</share-prepared-statements>
    </statement>
</datasource>

我在Jboss中安装了postgresql驱动程序并声明了它.

并在Spring配置中

...
@Bean
public DataSource dataSource() {
    final JndiDataSourceLookup dataSourceLookup = new JndiDataSourceLookup();
    dataSourceLookup.setResourceRef(true);
    DataSource dataSourceTemp = null;
    try {
        dataSourceTemp = dataSourceLookup.getDataSource("jdbc/mydatasource");
    } catch (DataSourceLookupFailureException e) {
        log.error("DataSource not found.");
    }
    HikariConfig hikariConfig = new HikariConfig();
    hikariConfig.setDataSource(dataSourceTemp);
    return new HikariDataSource(hikariConfig);
}
...

这段代码基于HikariJNDIFactory代码,一切似乎都有效,但我想我必须用连接属性创建一个属性对象,我必须在对象中包含哪些属性?

解决方法:

以下是“纯”Tomcat JNDI DataSource的配置:

https://github.com/brettwooldridge/HikariCP/wiki/JNDI-DataSource-Factory-(Tomcat,-etc.)

你可能也会找到这个答案Re:Spring Tomcat JNDI资讯:

How to use JNDI DataSource provided by Tomcat in Spring?

还推荐最新的HikariCP 2.0.1.

标签:java,postgresql,spring,jboss,hikaricp
来源: https://codeday.me/bug/20190624/1277707.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有