2010-02-08 9 views
5

Ho una libreria java esterna che sto usando nel mio progetto Grails. Ha bisogno di un DataSource tramite la configurazione Spring. Tuttavia, sembra che dataSource non sia accessibile da resources.groovy. Come posso accedervi? Sto utilizzando il seguente in resources.groovy:Come utilizzare Grails dataSource in resources.groovy?

beans = { 
eventDao(com.JavaClassRequiringDataSource) { 
    //dataSource = ref(dataSource, true) 
    dataSource = dataSource 
} 
} 

Esecuzione dei risultati app in un'eccezione:

org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingPropertyException: Nessuna proprietà del genere: dataSource per la classe : grails.spring.BeanBuilder

Qualche idea?

risposta

7

Secondo http://www.grails.org/Spring+Bean+Builder il metodo dovrebbe essere ragione .. Ho solo fatto qualche googleing e ha scoperto che questo dovrebbe farlo (non testato):

 
beans = { 
eventDao(com.JavaClassRequiringDataSource) { 
    dataSource = ref('dataSource', true) 
} 
} 

in modo da non fare riferimento a essa per variabile, ma in base al nome. (Fonte: http://burtbeckwith.com/blog/?cat=23)

+0

L'ha fatto! La documentazione mostrano esempi in questo modo:. anotherBean (AnotherBean) { esempio = ref ("$ {beanName} Bean" } che con il $ {} fa pensare che sono solo de-aliasing il nome della variabile – Mike

+0

Per alcuni dei fagioli che sto cablando, ho trovato che fosse meglio fare 'ref ('dataSource')." Aggiungere il secondo argomento per ref ha gettato errori che Grails non poteva impostare il bean dataSource mentre il bean dataSource era in via di definizione . – jonnybot

Problemi correlati