无法在grails中创建JNDI对象

时间:2016-05-19 10:28:40

标签: tomcat grails

如何在grails中查找? jndi查找应该很简单,但是我发现有关context.xml的混乱信息,添加" grails.naming.entries"在Config.xml中,在resources.groovy中创建一个jndi-lookup bean - 到目前为止我尝试过的所有组合都没有结果。如果我们在tomcat的context.xml中给它,它可以获取JNDI。所以,如果我在tomcat中部署战争,我不会有任何例外。

我的config.groovy

 <authentication mode="Forms">
      <forms loginUrl="~/Account/Login" timeout="2880" />
    </authentication>
    <authorization>
      <deny users="?"/>
    </authorization>

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

  
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'
    ]
]

错误:

  

org.springframework.beans.factory.BeanCreationException:错误   使用名称&#39; transactionManager&#39;创建bean在文件中定义   [C:\博尼塔家庭\服务器\平台\的conf \ SERVICES \ CFG-博尼塔事务-API-impl.xml中]:   调用init方法失败;嵌套异常是   javax.naming.NameNotFou ion:名称[java:comp / UserTransaction]不是   界; 2个绑定:   [java:comp / env / bonitaDS,java:comp / env / bonitaSequenceManagerDS](使用   --stacktrace以查看完整的跟踪)

运行test-app时,我得到以下启动异常  在运行时使用run-app时获取相同的异常 Grails 2.4.2

1 个答案:

答案 0 :(得分:1)

这就是我们在Datasource.groovy

中执行此操作的方式
dataSource {

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