Referring to a JNDI DataSource
Since many Java EE containers typically supply
DataSource
instances via the
Java Naming and Directory Interface (JNDI). Sometimes you are required to look-up a
DataSource
via JNDI.
Grails supports the definition of JNDI data sources as follows:
dataSource {
jndiName = "java:comp/env/myDataSource"
}
The format on the JNDI name may vary from container to container, but the way you define the
DataSource
remains the same.
Configuring a Development time JNDI resource
The way in which you configure JNDI data sources at development time is plugin dependent. Using the
Tomcat plugin you can define JNDI resources using the
grails.naming.entries
setting in
grails-app/conf/Config.groovy
:
grails.naming.entries = [
"bean/MyBeanFactory": [
auth: "Container",
type: "com.mycompany.MyBean",
factory: "org.apache.naming.factory.BeanFactory",
bar: "23"
],
"jdbc/EmployeeDB": [
type: "javax.sql.DataSource", //required
auth: "Container", // optional
description: "Data source for Foo", //optional
driverClassName: "org.hsql.jdbcDriver",
url: "jdbc:HypersonicSQL:database",
username: "dbusername",
password: "dbpassword",
maxActive: "8",
maxIdle: "4"
],
"mail/session": [
type: "javax.mail.Session,
auth: "Container",
"mail.smtp.host": "localhost"
]
]