gpt4 book ai didi

tomcat - 无法在 grails 中创建 JNDI 对象

转载 作者:行者123 更新时间:2023-11-28 22:17:55 24 4
gpt4 key购买 nike

如何在 grails 中进行查找? jndi 查找应该足够简单,但我发现有关 context.xml 的混淆信息,在 Config.xml 中添加“grails.naming.entries”,在 resources.groovy 中创建一个 jndi-lookup bean - 我尝试过的所有组合至今无果。如果我们在 tomcat 的 context.xml 中提供它,它就可以获取 JNDI。因此,如果我在 tomcat 中部署 war,我不会得到任何异常。

我的配置文件

grails.naming.entries = [
"java:comp/env/bonitaDS": [
type: 'javax.sql.DataSource',
auth: 'Container',
description: 'Main datasource',
url: "jdbc:mysql://localhost/bonita?useUnicode=yes&characterEncoding=UTF-8",
username: "",
password: "",
driverClassName: "com.mysql.jdbc.Driver",//"com.mysql.jdbc.jdbc2.optional.MysqlXADataSource",
maxActive: "8",
maxIdle: "4"
],

"java:comp/env/bonitaSequenceManagerDS": [
type: 'javax.sql.DataSource',
auth: 'Container',
description: 'Main datasource',
url: 'jdbc:mysql://localhost/bonita?useUnicode=yes&characterEncoding=UTF-8',
username: "root",
password: "root",
driverClassName: 'com.mysql.jdbc.Driver',
maxConnectionsPerPartition: "2",
minConnectionsPerPartition: "1",
partitionCount: "1",
acquireIncrement: "5",
statementsCacheSize: "100",
releaseHelperThreads: "3"
],

"java:comp/UserTransaction": [
type: 'com.atomikos.icatch.jta.UserTransactionFactory'
]
]

我的 context.xml 文件在 tomcat 的 conf 文件夹中

<Resource name="bonitaSequenceManagerDS"
auth="Container"
type="javax.sql.DataSource"
maxActive="17"
minIdle="5"
maxWait="10000"
initialSize="3"
maxPoolSize="15"
minPoolSize="3"
maxConnectionAge="0"
maxIdleTime="1800"
maxIdleTimeExcessConnections="120"
idleConnectionTestPeriod="30"
acquireIncrement="3"
validationQuery="SELECT 1"
validationInterval="30000"
testConnectionOnCheckout="true"
removeAbandoned="true"
logAbandoned="true"
username=""
password=""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/bonita?dontTrackOpenResources=true&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;autoReconnect=true"/>

<Resource name="bonitaDS"
auth="Container"
type="javax.sql.DataSource"
factory="bitronix.tm.resource.ResourceObjectFactory"
uniqueName="jdbc/bonitaDSXA" />

错误:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in file [C:\bonita-home\server\platform\conf\services\cfg-bonita-transaction-api-impl.xml]: Invocation of init method failed; nested exception is javax.naming.NameNotFou ion: Name [java:comp/UserTransaction] not bound; 2 bindings: [java:comp/env/bonitaDS,java:comp/env/bonitaSequenceManagerDS] (Use --stacktrace to see the full trace)

运行测试应用程序时出现以下启动异常 使用 run-app 使用时在运行时获得相同的异常 chalice 2.4.2

最佳答案

这就是我们在 Datasource.groovy 中的做法

dataSource {

jndiName = "java:comp/env/jdbc/bonitaSequenceManagerDS"
}

关于tomcat - 无法在 grails 中创建 JNDI 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37320520/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com