java - 如何从shiro.ini指向tomee.xml连接池

标签 java connection-pooling shiro apache-tomee

我在tomme.xml 中配置了一个连接池。所以我认为我不应该在 shiro.ini 中配置另一个连接池。相反,我可以简单地从 shiro.ini 指向 tomme.xml 中的连接池。我应该怎么做?

这里是tomee.xml

<?xml version="1.0" encoding="UTF-8"?>
<tomee>
  <!-- see http://tomee.apache.org/containers-and-resources.html -->

  <!-- activate next line to be able to deploy applications in apps -->
  <!-- <Deployments dir="apps" /> -->  


  <Resource id="testDatabase"  type="DataSource"> 
    accessToUnderlyingConnectionAllowed = false
    alternateUsernameAllowed = false
    connectionProperties = 
    defaultAutoCommit = true
    defaultReadOnly = 
    definition = 
    ignoreDefaultValues = false
    initialSize = 0
    jdbcDriver = com.teradata.jdbc.TeraDriver
    jdbcUrl = jdbc:teradata://XXXXXX,tmode=TERA,charset=UTF8,RECONNECT_COUNT=11
    jtaManaged = true
    maxActive = 20
    maxIdle = 20
    maxOpenPreparedStatements = 0
    maxWaitTime = -1 millisecond
    minEvictableIdleTime = 30 minutes
    minIdle = 0
    numTestsPerEvictionRun = 3
    password = XXXXXXXXXX
    passwordCipher = PlainText
    poolPreparedStatements = false
    serviceId = 
    testOnBorrow = true
    testOnReturn = false
    testWhileIdle = false
    timeBetweenEvictionRuns = -1 millisecond
    userName = XXXXX
    validationQuery = 
  </Resource>


</tomee>

这里是 shiro.ini 。我需要在shiro.ini中配置jdbcRealm

[main]
# This does not work  
jdbcRealm = org.apache.shiro.realm.jdbc.JdbcRealm
dataSource = org.apache.shiro.jndi.JndiObjectFactory
dataSource.resourceRef = true
dataSource.resourceName = "testDatabase"
jdbcRealm.dataSource = $dataSource
jdbcRealm.permissionsLookupEnabled = true  

# Configure JDBC realm SQL queries. 
jdbcRealm.authenticationQuery = SELECT XXX
jdbcRealm.userRolesQuery = SELECT XXX)

[urls]
/login.xhtml = user
/app/** = user  

我可以在 shiro.ini 中配置一个 jdbcRealm 但我想在 tomee.xml 中实现一个已经存在的连接池。我怎样才能做到这一点 ?

最佳答案

不是 Shiro 专家,但您的 tomee.xml 配置(虽然非常冗长)应该可以。您的方法是正确的,不要在应用程序中定义数据库池,而是在服务器本身上定义它。

在这里查看已接受的答案:How to configure JDBCRealm to obtain its DataSource from JNDI

并注意对该答案的两条评论。干杯!

关于java - 如何从shiro.ini指向tomee.xml连接池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37981107/

相关文章:

security - Grails + 保护应用程序

Java 和 Spring 后端与 Ruby (RhoMobile) 前端安全

java - 更改形状 XML Android 的颜色

java - JMS 连接池或 session 池

java - Harmonyos 中 view.postDelayed(Runnable action, long delayMillis) 的等价物是什么?

.net - 来自线程的 Entity Framework 连接管理

oracle - 与 Oracle 数据库的 tomcat jdbc 连接池

java - 提供 apache-shiro 作为 JBoss-7、WildFly-8 的模块

java - 损坏的 Protocol Buffer 消息

java - 与 REST Web 服务设计相比,使用 Direct Web Remoting 有何优势?