Проблема конфигурации Grails UserCredentialsDataSourceAdapter - PullRequest
1 голос
/ 25 октября 2011

Я новичок в отличных рамках Grails.У нас есть требование, при котором нам необходимо установить соединение с базой данных во время выполнения, поскольку каждый пользователь приложения имеет уникальные учетные данные для получения соединения с БД.Мы обнаружили, что можем использовать предоставленный Spring API UserCredentialsDataSourceAdapter для достижения нашей цели.Но когда мы пытаемся запустить приложение после добавления конфигурации для UserCredentialsDataSourceAdapter, мы получаем следующую ошибку


[main] ERROR context.GrailsContextLoader - Ошибка при выполнении начальной загрузки: Ошибка создания компонента с именем 'messageSource': инициализациябобов не удалось;вложенное исключение: org.springframework.beans.factory.BeanCreationException: ошибка при создании компонента с именем'actionManager ': невозможно разрешить ссылку на компонент' sessionFactory 'при установке свойства компонента' sessionFactory ';вложенное исключение - org.springframework.beans.factory.BeanCreationException: ошибка при создании компонента с именем 'sessionFactory': сбой вызова метода init;вложенное исключение - java.lang.NullPointerException: невозможно получить свойство 'config' для нулевого объекта org.springframework.beans.factory.BeanCreationException: ошибка при создании компонента с именем 'messageSource': инициализация компонента не выполнена;вложенное исключение: org.springframework.beans.factory.BeanCreationException: ошибка при создании компонента с именем'actionManager ': невозможно разрешить ссылку на компонент' sessionFactory 'при установке свойства компонента' sessionFactory ';вложенное исключение - org.springframework.beans.factory.BeanCreationException: ошибка при создании компонента с именем 'sessionFactory': сбой вызова метода init;вложенное исключение: java.lang.NullPointerException: невозможно получить свойство 'config' для нулевого объекта в org.grails.tomcat.TomcatServer.start (TomcatServer.groovy: 212) в grails.web.container.EmbeddableServer $ start.call (неизвестный источник) при _GrailsRun_groovy $ _run_closure5_closure12.doCall (_GrailsRun_groovy: 158) в _GrailsRun_groovy $ _run_closure5_closure12.doCall (_GrailsRun_groovy) в _GrailsSettings_groovy $ _run_closure10.doCall (_GrailsSettings_groovy: 280) в _GrailsSettings_groovy $ _run_closure10.call (_GrailsSettings_groovy) в _GrailsRun_groovy $ _run_closure5.doCall (_GrailsRun_groovy:149) в _GrailsRun_groovy $ _run_closure5.call (_GrailsRun_groovy) при _GrailsRun_groovy.runInline (_GrailsRun_groovy: 116) в _GrailsRun_groovy.this $ 4 $ runInline (_GrailsRun_groovy) при _GrailsRun_groovy $ _run_closure1.doCall (_GrailsRun_groovy: 59) в RunApp $ _run_closure1.doCall (RunApp:33) в gant.Gant $ _dispatch_closure5.doCall (Gant.groovy: 381) в gant.Gant $ _dispatch_closure7.doCall (Gant.groovy: 415) в gant.Gant $ _dispatch_closure7.doCall (Gant.groovy) в gant.Gant.withBuildListeners (Gant.groovy: 427) в gant.Gant.this $ 2 $ с withBuildListeners (Gant.groovy) в gant.Gant $ это $ 2 $ withBuildListeners.callCurrent (неизвестный источник)в gant.Gant.dispatch (Gant.groovy: 415) в gant.Gant.this $ 2 $ рассылка (Gant.groovy) в gant.Gant.invokeMethod (Gant.groovy) в gant.Gant.executeTargets (Gant.groovy: 590) в gant.Gant.executeTargets (Gant.groovy: 589)Вызвано: org.springframework.beans.factory.BeanCreationException: Ошибка при создании компонента с именем'actionManager ': невозможно разрешить ссылку на компонент' sessionFactory 'при установке свойства компонента' sessionFactory '; вложенное исключение - org.springframework.beans.factory.BeanCreationException: ошибка при создании компонента с именем 'sessionFactory': сбой вызова метода init; Вложенное исключение - java.lang.NullPointerException: невозможно получить свойство 'config' для нулевого объекта ... еще 23 Вызвано: org.springframework.beans.factory.BeanCreationException: Ошибка создания компонента с именем 'sessionFactory': сбой вызова метода init; Вложенное исключение - java.lang.NullPointerException: невозможно получить свойство 'config' для нулевого объекта ... еще 23 Причина: java.lang.NullPointerException: Невозможно получить свойство 'config' для нулевого объекта на Script1.run (Script1.groovy: 1) ... еще 23


мы настроили UserCredentialsDataSourceAdapter в resources.groovy следующим образом

     beans = {

            targetDataSource(DriverManagerDataSource){
                            driverClassName= "oracle.jdbc.driver.OracleDriver"
                            url= "jdbc:oracle:oci:@dbname"
            }

            dataSource(UserCredentialsDataSourceAdapter){
                            targetDataSource= ref("targetDataSource")
                            username = "username"
                            password = "password"
            }

            sessionFactory(ConfigurableLocalSessionFactoryBean) {
                            dataSource = dataSource
                            hibernateProperties = [ "hibernate.hbm2ddl.auto":"create-drop",
                                                     "hibernate.show_sql":true ,
                                                     "hibernate.dialect":"org.hibernate.dialect.O                                                          racle10gDialect" ]
            }

}

1 Ответ

0 голосов
/ 25 октября 2011

Мне не очень понятен вопрос, что это за пользователь приложения, почему нет нескольких приложений с одним единственным пользователем (пользователем базы данных) ....

Grails для запуска нужен источник данных ...

Или пользователь приложения - это кто-то, кто входит в приложение (Multitenancy) http://www.grails.org/plugin/multi-tenant

...