Ваш источник данных должен быть экземпляром org.springframework.jdbc.datasource.lookup.JndiDataSourceLookup.
Если вы запустите tomcat, встроенный в grails, вам потребуется смоделировать ваш источник данных JNDI, добавив следующеезапись в Config.groovy:
grails.naming.entries = ['jdbc/jobDataSource': [
type: "javax.sql.DataSource", //required
auth: "Container", // optional
description: "Data source for ...",
url: "jdbc:oracle:thin:@berlin:1521:casdev",
username: "cso",
password: "job",
driverClassName: "oracle.jdbc.driver.OracleDriver",
maxActive: "8", //and so on
maxIdle: "4"
]
]
Если вы хотите запустить свое приложение как войну и вам нужен фактический источник данных JNDI, развернутый и управляемый tomcat, вам нужно создать контекст tomcat для вашего приложения:
Если ваше приложение - jobapp.war, вы должны поместить файл jobapp.xml в TOMCAT_HOME / conf / Catalina / localhost / jobapp.xml
Этот файл jobapp.xml должен содержать следующее:
<Context path="/jobapp">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/jobDataSource"
auth="Container" type="javax.sql.DataSource"
username="cso"
password="job"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@berlin:1521:casdev""
defaultAutoCommit="false"
<!--
... other parameters
!-->
/>
Я считаю, что это должно сработать (убедитесь, что ваши драйверы доступны для вашей установки Tomcat, если вы запускаете ее как войну)
С уважением,
Винсент Жигер