2017-10-08 163 views
1

我创建了一个Grails REST API项目,否则运行正常。
我已经添加上的build.gradle到春季安全休息dependecy添加到我的build.gradle文件应用程序启动失败添加Spring Security的Grails 3.3.0

compile 'org.grails.plugins:spring-security-core:3.0.3' compile "org.grails.plugins:spring-security-rest:2.0.0.M2"

我使用后,其并未给出任何错误
我创建某些文件的Grails编译如下使用s2-quickstart并将某些代码添加到控制器。 但上运行的应用程序的Grails我收到以下错误

| Running application... 

Configuring Spring Security Core ... 
2017-10-08 19:36:30.520 ERROR --- [   main] o.s.boot.SpringApplication    : Application startup failed 

java.lang.NoClassDefFoundError: org/springframework/boot/context/embedded/FilterRegistrationBean 
     at grails.plugin.springsecurity.SpringSecurityCoreGrailsPlugin$_doWithSpring_closure12.doCall(SpringSecurityCoreGrailsPlugin.groovy:196) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:498) 
     at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1426) 
     at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) 
     at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) 
     at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) 
     at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022) 
     at groovy.lang.Closure.call(Closure.java:414) 
     at groovy.lang.Closure.call(Closure.java:408) 
     at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:759) 
     at grails.spring.BeanBuilder.beans(BeanBuilder.java:588) 
     at grails.spring.BeanBuilder.invokeMethod(BeanBuilder.java:531) 
     at org.grails.plugins.DefaultGrailsPlugin.doWithRuntimeConfiguration(DefaultGrailsPlugin.java:559) 
     at org.grails.plugins.AbstractGrailsPluginManager.doRuntimeConfiguration(AbstractGrailsPluginManager.java:167) 
     at grails.boot.config.GrailsApplicationPostProcessor.postProcessBeanDefinitionRegistry(GrailsApplicationPostProcessor.groovy:171) 
     at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118) 
     at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:687) 
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:525) 
     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:388) 
     at grails.boot.GrailsApp.run(GrailsApp.groovy:375) 
     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 todo.Application.main(Application.groovy:8) 
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.context.embedded.FilterRegistrationBean 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
     ... 33 common frames omitted 

2017-10-08 19:36:30.535 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]71c5b236: startup date [Sun Oct 08 19:36:25 IST 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.doClose(AbstractApplicationContext.java:1006) 
     at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:958) 
     at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:750) 
     at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) 
     at grails.boot.GrailsApp.run(GrailsApp.groovy:83) 
     at grails.boot.GrailsApp.run(GrailsApp.groovy:388) 
     at grails.boot.GrailsApp.run(GrailsApp.groovy:375) 
     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 todo.Application.main(Application.groovy:8) 

2017-10-08 19:36:30.537 ERROR --- [   main] o.s.b.f.s.DefaultListableBeanFactory  : Destroy method on bean with name 'org.springframework.boot.autoconfigure.internalCachingMetadataReaderFactory' threw an exception 

java.lang.IllegalStateException: ApplicationEventMulticaster not initialized - call 'refresh' before multicasting events via the context: org.springframework.boot[email protected]71c5b236: startup date [Sun Oct 08 19:36:25 IST 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.doClose(AbstractApplicationContext.java:1006) 
     at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:958) 
     at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:750) 
     at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) 
     at grails.boot.GrailsApp.run(GrailsApp.groovy:83) 
     at grails.boot.GrailsApp.run(GrailsApp.groovy:388) 
     at grails.boot.GrailsApp.run(GrailsApp.groovy:375) 
     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 todo.Application.main(Application.groovy:8) 


FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':bootRun'. 
> Process 'command '/usr/local/java/jdk1.8.0_131/bin/java'' 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. 
| Error Failed to start server (Use --stacktrace to see the full trace) 

这是我的build.gradle文件

buildscript { 
    repositories { 
     mavenLocal() 
     maven { url "https://repo.grails.org/grails/core" } 
    } 
    dependencies { 
     classpath "org.grails:grails-gradle-plugin:$grailsVersion" 
     classpath "org.grails.plugins:hibernate5:${gormVersion-".RELEASE"}" 
     classpath "org.grails.plugins:views-gradle:1.1.6" 
    } 
} 

version "0.1" 
group "todo" 

apply plugin:"eclipse" 
apply plugin:"idea" 
apply plugin:"war" 
apply plugin:"org.grails.grails-web" 
apply plugin:"org.grails.plugins.views-json" 

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

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-plugin-url-mappings" 
    compile "org.grails:grails-plugin-rest" 
    compile "org.grails:grails-plugin-codecs" 
    compile "org.grails:grails-plugin-interceptors" 
    compile "org.grails:grails-plugin-services" 
    compile "org.grails:grails-plugin-datasource" 
    compile "org.grails:grails-plugin-databinding" 
    compile "org.grails:grails-web-boot" 
    compile "org.grails:grails-logging" 
    compile "org.grails.plugins:cache" 
    compile "org.grails.plugins:async" 
    compile "org.grails.plugins:hibernate5" 
    compile "org.hibernate:hibernate-core:5.1.5.Final" 
    compile "org.grails.plugins:views-json" 
    compile "org.grails.plugins:views-json-templates" 
    compile 'org.grails.plugins:spring-security-core:3.0.3' 
    compile "org.grails.plugins:spring-security-rest:2.0.0.M2" 
    console "org.grails:grails-console" 
    profile "org.grails.profiles:rest-api" 
    runtime "org.glassfish.web:el-impl:2.1.2-b03" 
    runtime "com.h2database:h2" 
    runtime "org.apache.tomcat:tomcat-jdbc" 
    runtime 'mysql:mysql-connector-java:5.1.44' 
    testCompile "org.grails:grails-gorm-testing-support" 
    testCompile "org.grails.plugins:geb" 
    testCompile "org.grails:grails-datastore-rest-client" 
    testCompile "org.grails:grails-web-testing-support" 
    testRuntime "org.seleniumhq.selenium:selenium-htmlunit-driver:2.47.1" 
    testRuntime "net.sourceforge.htmlunit:htmlunit:2.18" 
} 

bootRun { 
    jvmArgs('-Dspring.output.ansi.enabled=always') 
    addResources = true 
} 

回答

1

您使用弹簧安全的版本与Grails的3.3兼容。使用版本3.2.0。

相关问题