2016-05-15 69 views
1

我遇到了此错误并且找不到解决方案 我使用postgres与Grails的创建名为'transactionManager'的bean时出错:无法在设置bean属性'sessionFactory'时解析对bean''sessionFactory''的引用“

这里是一个不断发生

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManagerPostProcessor': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Invocation of init method failed; nested exception is org.hibernate.MappingException: Could not instantiate id generator [entity-name=beans.AbsPessoa] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) 
    at org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:207) 
    at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:687) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:523) 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766) 
    at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) 
    at grails.boot.GrailsApp.run(GrailsApp.groovy:55) 
    at grails.boot.GrailsApp.run(GrailsApp.groovy:374) 
    at grails.boot.GrailsApp.run(GrailsApp.groovy:363) 
    at grails.boot.GrailsApp$run.call(Unknown Source) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133) 
    at trabalhoestagio.Application.main(Application.groovy:8) 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Invocation of init method failed; nested exception is org.hibernate.MappingException: Could not instantiate id generator [entity-name=beans.AbsPessoa] 
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359) 
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1481) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1226) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) 
    at org.grails.transaction.TransactionManagerPostProcessor.initialize(TransactionManagerPostProcessor.java:75) 
    at org.grails.transaction.TransactionManagerPostProcessor.setBeanFactory(TransactionManagerPostProcessor.java:53) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeAwareMethods(AbstractAutowireCapableBeanFactory.java:1597) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1565) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) 
    ... 20 common frames omitted 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Invocation of init method failed; nested exception is org.hibernate.MappingException: Could not instantiate id generator [entity-name=beans.AbsPessoa] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351) 
    ... 34 common frames omitted 
Caused by: org.hibernate.MappingException: Could not instantiate id generator [entity-name=beans.AbsPessoa] 
    at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.createIdentifierGenerator(DefaultIdentifierGeneratorFactory.java:123) 
    at org.hibernate.mapping.SimpleValue.createIdentifierGenerator(SimpleValue.java:225) 
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:323) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1859) 
    at org.grails.orm.hibernate.cfg.HibernateMappingContextConfiguration.buildSessionFactory(HibernateMappingContextConfiguration.java:196) 
    at org.grails.orm.hibernate.HibernateMappingContextSessionFactoryBean.doBuildSessionFactory(HibernateMappingContextSessionFactoryBean.java:476) 
    at org.grails.orm.hibernate.HibernateMappingContextSessionFactoryBean.buildSessionFactory(HibernateMappingContextSessionFactoryBean.java:470) 
    at org.grails.orm.hibernate.HibernateMappingContextSessionFactoryBean.afterPropertiesSet(HibernateMappingContextSessionFactoryBean.java:93) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) 
    ... 41 common frames omitted 
Caused by: java.lang.ClassCastException: org.grails.config.NavigableMap$NullSafeNavigator cannot be cast to java.lang.Boolean 
    at net.kaleidos.hibernate.PostgresqlExtensionsDialect$TableNameSequenceGenerator.configure(PostgresqlExtensionsDialect.java:60) 
    at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.createIdentifierGenerator(DefaultIdentifierGeneratorFactory.java:117) 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':bootRun'. 
> Process 'command 'C:\Program Files\Java\jdk1.8.0_91\bin\java.exe'' finished with non-zero exit value 1 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 
    ... 50 common frames omitted 
Error | 
Failed to start server (Use --stacktrace to see the full trace) 

错误这里是我的build.gladle

buildscript { 
    ext { 
     grailsVersion = project.grailsVersion 
    } 
    repositories { 
     mavenLocal() 
     maven { url "https://repo.grails.org/grails/core" } 
    } 
    dependencies { 
     classpath "org.grails:grails-gradle-plugin:$grailsVersion" 
     classpath "com.bertramlabs.plugins:asset-pipeline-gradle:2.8.2" 
     classpath "org.grails.plugins:hibernate4:5.0.5" 
    } 
} 

version "0.1" 
group "trabalhoestagio" 

apply plugin:"eclipse" 
apply plugin:"idea" 
apply plugin:"war" 
apply plugin:"org.grails.grails-web" 
apply plugin:"org.grails.grails-gsp" 
apply plugin:"asset-pipeline" 

ext { 
    grailsVersion = project.grailsVersion 
    gradleWrapperVersion = project.gradleWrapperVersion 
} 

repositories { 
    jcenter() 
    mavenLocal() 
    maven { url "https://repo.grails.org/grails/core" } 
} 

dependencyManagement { 
    imports { 
     mavenBom "org.grails:grails-bom:$grailsVersion" 
    } 
    applyMavenExclusions false 
} 

dependencies {  
    compile "org.springframework.boot:spring-boot-starter-logging" 
    compile "org.springframework.boot:spring-boot-autoconfigure" 
    compile "org.grails:grails-core" 
    compile "org.springframework.boot:spring-boot-starter-actuator" 
    compile "org.springframework.boot:spring-boot-starter-tomcat" 
    compile "org.grails:grails-dependencies" 
    compile "org.grails:grails-web-boot" 
    compile "org.grails.plugins:cache" 
    compile "org.grails.plugins:scaffolding" 
    compile "org.grails.plugins:hibernate4" 
    compile "org.hibernate:hibernate-ehcache" 
    console "org.grails:grails-console" 
    profile "org.grails.profiles:web:3.1.6" 
    runtime "com.bertramlabs.plugins:asset-pipeline-grails:2.8.2" 
    runtime "com.h2database:h2" 
    testCompile "org.grails:grails-plugin-testing" 
    testCompile "org.grails.plugins:geb" 
    testRuntime "org.seleniumhq.selenium:selenium-htmlunit-driver:2.47.1" 
    testRuntime "net.sourceforge.htmlunit:htmlunit:2.18" 
    compile 'org.grails.plugins:postgresql-extensions:4.6.1' 
    provided 'org.postgresql:postgresql:9.4-1203-jdbc4' 
} 

task wrapper(type: Wrapper) { 
    gradleVersion = gradleWrapperVersion 
} 

assets { 
    minifyJs = true 
    minifyCss = true 
} 

这是我Application.yml

hibernate: 
     dialect: net.kaleidos.hibernate.PostgresqlExtensionsDialect 
     cache: 
      queries: false 
      use_second_level_cache: true 
      use_query_cache: false 
      region.factory_class: 'org.hibernate.cache.ehcache.EhCacheRegionFactory' 

    dataSource: 
     pooled: true 
     jmxExport: true 
     driverClassName: org.postgresql.Driver 
     username: postgres 
     password: password 
     url: jdbc:postgresql://localhost:5432/trabalho 
     dbCreate: update 


    environments: 
     development: 
      dataSource: 
       dbCreate: create-drop 
       url: jdbc:postgresql://localhost:5432/trabalho 
     test: 
      dataSource: 
       dbCreate: update 
       url: jdbc:postgresql://localhost:5432/trabalho 
     production: 
      dataSource: 
       dbCreate: update 
       url: jdbc:postgresql://localhost:5432/trabalho 
       properties: 
        jmxEnabled: true 
        initialSize: 5 
        maxActive: 50 
        minIdle: 5 
        maxIdle: 25 
        maxWait: 10000 
        maxAge: 600000 
        timeBetweenEvictionRunsMillis: 5000 
        minEvictableIdleTimeMillis: 60000 
        validationQuery: SELECT 1 
        validationQueryTimeout: 3 
        validationInterval: 15000 
        testOnBorrow: true 
        testWhileIdle: true 
        testOnReturn: false 
        jdbcInterceptors: ConnectionState 
        defaultTransactionIsolation: 2 # TRANSACTION_READ_COMMITTED 

    --- 
    --- 
    grails: 
     profile: web 
     codegen: 
      defaultPackage: trabalhoestagio 
     spring: 
      transactionManagement: 
       proxies: false 
    info: 
     app: 
      name: '@[email protected]' 
      version: '@[email protected]' 
      grailsVersion: '@[email protected]' 
    spring: 

     groovy: 
      template: 
       check-template-location: false 

    --- 
    grails: 
     mime: 
      disable: 
       accept: 
        header: 
         userAgents: 
          - Gecko 
          - WebKit 
          - Presto 
          - Trident 
      types: 
       all: '*/*' 
       atom: application/atom+xml 
       css: text/css 
       csv: text/csv 
       form: application/x-www-form-urlencoded 
       html: 
        - text/html 
        - application/xhtml+xml 
       js: text/javascript 
       json: 
        - application/json 
        - text/json 
       multipartForm: multipart/form-data 
       pdf: application/pdf 
       rss: application/rss+xml 
       text: text/plain 
       hal: 
        - application/hal+json 
        - application/hal+xml 
       xml: 
        - text/xml 
        - application/xml 
     urlmapping: 
      cache: 
       maxsize: 1000 
     controllers: 
      defaultScope: singleton 
     converters: 
      encoding: UTF-8 
     views: 
      default: 
       codec: html 
      gsp: 
       encoding: UTF-8 
       htmlcodec: xml 
       codecs: 
        expression: html 
        scriptlets: html 
        taglib: none 
        staticparts: none 
    endpoints: 
     jmx: 
      unique-names: true 

回答

2

从你的日志:

Caused by: java.lang.ClassCastException: org.grails.config.NavigableMap$NullSafeNavigator..... 

似乎与:grails-postgresql-extensions插件

据: https://github.com/kaleidos/grails-postgresql-extensions/issues/84

问题已修复版本:4.6.5和你正在使用:4.6。 1

希望它有帮助

+0

解决了这个问题,我将我的postgres扩展版本转换为4.6.5,错误消失了,谢谢! – xSlok

+0

不客气!你忘了提高分数吗? :) – OscarBcn

0

你似乎有与ID生成一个问题,根据您的日志

MappingException: Could not instantiate id generator 

请使用发电机战略为增量其创建主键。

相关问题