2017-12-07 57 views
0

중복 표시하지 마십시오 방금 ​​새로운 Grails 앱을 만들었습니다. 나는 새로운 도메인 클래스와 해당하는 gsp 뷰를 가진 컨트롤러를 만들었다. jdbc 연결 정보를 application.yml에 추가했습니다. 내가 그것을 실행할 때 아래 문제가 발생했습니다 :Grails : 3.3.2 : ApplicationEventMulticaster가 초기화되지 않았습니다. 컨텍스트를 통해 이벤트를 멀티 캐스팅하기 전에 '새로 고침'을 호출하십시오.

objc[27382]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/bin/java (0x107fcf4c0) and /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x1080bb4e0). One of the two will be used. Which one is undefined. 
2017-12-07 15:14:06.838 ERROR --- [   main] o.s.b.f.s.DefaultListableBeanFactory  : Destroy method on bean with name 'org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor' threw an exception 

java.lang.IllegalStateException: ApplicationEventMulticaster not initialized - call 'refresh' before multicasting events via the context: org.springframework.boot[email protected]4ebea12c: startup date [Thu Dec 07 15:14:02 PST 2017]; root of context hierarchy 
     at org.springframework.context.support.AbstractApplicationContext.getApplicationEventMulticaster(AbstractApplicationContext.java:414) 
     at org.springframework.context.support.ApplicationListenerDetector.postProcessBeforeDestruction(ApplicationListenerDetector.java:97) 
     at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:253) 
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:578) 
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:554) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:961) 
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:523) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:968) 
     at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1030) 
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:556) 
     at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) 
     at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) 
     at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) 
     at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) 
     at grails.boot.GrailsApp.run(GrailsApp.groovy:83) 
     at grails.boot.GrailsApp.run(GrailsApp.groovy:387) 
     at grails.boot.GrailsApp.run(GrailsApp.groovy:374) 
     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 ice_grailsapp.Application.main(Application.groovy:8) 

2017-12-07 15:14:06.843 ERROR --- [   main] o.s.b.f.s.DefaultListableBeanFactory  : Destroy method on bean with name 'grailsApplicationPostProcessor' threw an exception 

java.lang.IllegalStateException: ApplicationEventMulticaster not initialized - call 'refresh' before multicasting events via the context: org.springframework.boot[email protected]4ebea12c: startup date [Thu Dec 07 15:14:02 PST 2017]; root of context hierarchy 
     at org.springframework.context.support.AbstractApplicationContext.getApplicationEventMulticaster(AbstractApplicationContext.java:414) 
     at org.springframework.context.support.ApplicationListenerDetector.postProcessBeforeDestruction(ApplicationListenerDetector.java:97) 
     at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:253) 
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:578) 
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:554) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:961) 
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:523) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:968) 
     at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1030) 
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:556) 
     at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) 
     at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) 
     at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) 
     at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) 
     at grails.boot.GrailsApp.run(GrailsApp.groovy:83) 
     at grails.boot.GrailsApp.run(GrailsApp.groovy:387) 
     at grails.boot.GrailsApp.run(GrailsApp.groovy:374) 
     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 ice_grailsapp.Application.main(Application.groovy:8) 

내 build.gradle은 모두 기본 종속성을가집니다.

컴파일 그룹 : 'MySQL은'이름 'MySQL의 커넥터 - 자바', 버전 : '5.1.13'컴파일 그룹 : 'CGLIB'이름 'CGLIB 난 그냥 아래의 의존성을 추가 한 '버전'3.2.4 ' 컴파일 그룹 :'org.springframework '이름'스프링 JDBC ', 버전 : '4.3.8.RELEASE '

내 도메인 클래스 고객 지정됩니다. 그루비 문자

class CUSTOMER { 

    String pk 
    String SPN 
    String CustomerPk 

    static constraints = { 
    } 
} 

데이터베이스가 MYSQL이고 방금입니다. CUSTOMER라는 테이블에서 읽으려고합니다. 도메인 클래스의 테이블에있는 모든 필드를 각각 매핑해야합니까? 친절한 조언

+0

비슷한 문제는 여기에서 찾을 수 있습니다. "https://jira.spring.io/browse/SPR-16149" – 49er

+0

여기에서 정보가 충분하지 않습니다. ConfigurationPropertiesBindingPostProcessor가 예외를 던졌지 만 –

+0

@JamesKleeh가 나열되어 있지 않습니다. : 설명을 업데이트했습니다. – 49er

답변

0

나는 grails에 처음 왔기 때문에이 오류를 이해하기가 어려웠다. 나는 그 문제가 GORM 수업에 있다는 것을 나중에 깨달았다. 기존 SQL 데이터베이스에 연결하고 해당 테이블에서 데이터를 검색하려고했습니다. 기본적으로 Grails는 verison (필드)을 매핑하려고합니다. Grails가 테이블에 연결을 시도 할 때 테이블에없는 매핑 버전도 시도했습니다. 테이블의 id (기본 키)를 지정하고 verion을 false로 언급합니다. 이 문제를 해결할 수 있도록 도와주었습니다. 변경 내용은 다음과 같습니다.

class CUSTOMER { 

    String pk 
    String spn 
    String customerpk 

    static mapping = { 
     id name: 'customerpk' 
     version false 
     id generator: 'assigned' 
    } 

} 

또한 GORM 클래스에서 테이블의 기본 키를 id로 언급했는지 확인하십시오. 참고 : 때로는 throw되는 오류 메시지의 끝에 약간의 세부 사항이 포함되어 있으므로 첫 번째 줄을 보면 항상 의미가있는 것은 아닙니다.