2017-09-01 3 views
-1

J'ai défini modèle Spring JDBC dans le fichier resources.groovy comme indiqué ci-dessous:Grails: comment utiliser la source de données JNDI dans le fichier resources.groovy.

jdbcTemplate(org.springframework.jdbc.core.JdbcTemplate) { 
    dataSource = ? // Here I need get the datasource from JNDI 
} 

Je dois obtenir la source de données de JNDI et l'injecter à DataSource propriété du modèle de printemps.

PS: Version Grails: 2.4.4

S'il vous plaît aider. Merci d'avance.

Répondre

1

Y a-t-il une raison pour laquelle vous devez utiliser jdbcTemplate? Si vous configurez votre source de données dans DataSource.groovy, vous pouvez y utiliser JNDI. Ex:

environments { 

development { 
    dataSource { 
     dbCreate = false // one of 'create', 'create-drop','update' 
     dialect = org.hibernate.dialect... 
     jndiName = "java:comp/env/jdbc/YourDataSource" 
    } 

Vous aurez besoin aussi probablement ajouter une ref ressource dans votre répertoire src/templates/guerre/web.xml:

<resource-ref> 
    <res-ref-name>jdbc/YourDataSource</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
</resource-ref> 

Avec le DataSource défini, le JdbcTemplate dans resources.groovy devrait probablement auto-fil, ou si ce n'est pas le cas, faites-le:

jdbcTemplate(org.springframework.jdbc.core.JdbcTemplate) { 
    dataSource = ref('dataSource') 
} 

Hope that helps!