2010-02-08 2 views
5

У меня есть внешняя библиотека java, которую я использую в своем проекте Grails. Он нуждается в источнике данных через конфигурацию Spring. Тем не менее, dataSource, похоже, недоступен из resources.groovy. Как мне получить доступ к нему? Я использую следующие в resources.groovy:Как использовать данные GrailsSource в ресурсах.groovy?

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

Запуск приложения результатов в виде исключения:

org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingPropertyException: Нет такого имущества: dataSource для класс: grails.spring.BeanBuilder

Любые идеи?

ответ

7

Согласно http://www.grails.org/Spring+Bean+Builder ваш метод должен быть правильно .. Я просто сделал некоторые Googleing и обнаружили, что это должно сделать это (непроверенные):

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

так что вы не ссылаться на него по переменной, а по имени. (Источник: http://burtbeckwith.com/blog/?cat=23)

+0

Это было сделано! Документы показывают примеры, как так:. anotherBean (AnotherBean) { примера = реф ("$ {beanName} Bean" } Что с $ {} заставляет вас думать, что они только де-альясинг имени переменного – Mike

+0

Для некоторых из bean-компонентов, которые я подключаю, я нашел, что лучше всего использовать 'ref ('dataSource')'. Добавляя второй аргумент для ref, он выдавал ошибки, которые Grails не мог установить для bean dataSource, пока определялся источник данных bean , – jonnybot

Смежные вопросы