当前位置: 首页 > 知识库问答 >
问题:

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

淳于乐池
2023-03-14
<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>

在其他错误中,我发现了以下错误:

错误[org.jboss.as.Controller.management-Operation](控制器引导线程)JBAS014613:操作(“add”)失败-地址:([(“subsystem”=>“datasources”),(“data-source”=>“mydatasource”)])-失败描述:{“JBAS014771:Services with missing/unavailable dependencies”=>[“jboss.driver-demander.java:jboss/datasources/mydatasource缺少[jboss.jdbc

那么什么是正确的配置方式呢?

<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>
...
@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);
}
...

共有1个答案

伍玮
2023-03-14

下面是“纯”Tomcat JNDI数据源的配置:

https://github.com/brettwooldridge/hikaricp/wiki/jndi-datasource-factory-(Tomcat等)

您可能还会发现这个答案re:Spring+Tomcat+JNDI informative:

 类似资料:
  • 我想用Spring Boot配置JNDI数据源 我知道可以在application.properties.中使用以下内容创建jndi。我在纠结的是如何将其与JBoss WildFly联系起来? a.我需要在WildFly的standalone.xml下添加/更改什么和b. Spring Boot主应用程序类ProjectPocApiApplication下需要的任何更改 谢谢

  • 我在使用Spring ApplicationContext.xml文件中的JNDI配置dataSource bean时遇到了困难。 我的applicationContext.xml条目如下所示: 通过这些配置,我在Tomcat控制台上不断得到这样的错误: 由:javax.naming.NameNotFoundException:Name[jdbc/myapp]在此上下文中没有绑定。找不到[jdbc

  • 问题内容: 我正在尝试将HikariCP与Spring一起用于连接池。我正在使用jdbcTempLate和JdbcdaoSupport。 这是我用于数据源的spring配置文件: 但不幸的是,正在生成以下错误消息: 谁能告诉我如何解决这个问题? 问题答案: 你需要在bean配置上编写此结构(这是你的数据源): 这是我的示例,正​​在运行。你只需要将属性放在hibernate.properties上

  • 我是JNDI的新手,我正在尝试让我的db连接正常工作。到目前为止还没有什么进展。我要么收到一条消息,说明“名称[java:comp/env]未在此上下文中绑定。找不到[java:comp]”,要么收到超时。 下面是关于我当前配置的信息。 Tomcat\conf\context.xml 我还尝试将资源放在context.xml中,以确保可以找到它: Tomcat\conf\server.xml 我回