Grails 文件 resources.groovy 被 Spring Tool Suite 忽略
Grails file resources.groovy ignored by Spring Tool Suite
最新版本的 STS(例如 3.7.3)不再支持 Grails,所以我使用 STS Gradle 项目作为解决方法,以便 运行 我的 Grails 应用程序 "Spring Boot App" 选项。它工作正常,但我遇到了以下问题:
问题:
当我通过 STS 运行ning 作为 "Spring Boot App" 执行应用程序时,不知何故在 resources.groovy 文件下声明的所有 bean 都被忽略了。请注意,运行通过控制台 "run-app" 命令运行应用程序它工作正常。
异常:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'facebookAuthRedirectFilter': Cannot resolve reference to bean 'redirectFailureHandlerExample' while setting bean property 'authenticationFailureHandler'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'redirectFailureHandlerExample' is defined
我的resources.groovy文件
package spring
import org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler
beans = {
redirectFailureHandlerFacebook(SimpleUrlAuthenticationFailureHandler) {
setDefaultFailureUrl('/login/auth')
}
}
STS:
版本:3.7.3.RELEASE
内部版本号:201602250940
平台:Eclipse Mars.2 (4.5.2)
Grails:
Grails 版本:3.1.1
Groovy版本:2.4.5
JVM 版本:1.7.0_75
似乎是 classpath 问题,但我还找不到解决方法。
问题已通过更新 Groovy 编译器设置得到解决。转到Window->Preferences->Groovy->Compiler,见下文:
这样做 resources.groovy 将被编译,bean 将在 运行 时间可用。
最新版本的 STS(例如 3.7.3)不再支持 Grails,所以我使用 STS Gradle 项目作为解决方法,以便 运行 我的 Grails 应用程序 "Spring Boot App" 选项。它工作正常,但我遇到了以下问题:
问题:
当我通过 STS 运行ning 作为 "Spring Boot App" 执行应用程序时,不知何故在 resources.groovy 文件下声明的所有 bean 都被忽略了。请注意,运行通过控制台 "run-app" 命令运行应用程序它工作正常。
异常:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'facebookAuthRedirectFilter': Cannot resolve reference to bean 'redirectFailureHandlerExample' while setting bean property 'authenticationFailureHandler'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'redirectFailureHandlerExample' is defined
我的resources.groovy文件
package spring
import org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler
beans = {
redirectFailureHandlerFacebook(SimpleUrlAuthenticationFailureHandler) {
setDefaultFailureUrl('/login/auth')
}
}
STS:
版本:3.7.3.RELEASE 内部版本号:201602250940 平台:Eclipse Mars.2 (4.5.2)
Grails:
Grails 版本:3.1.1 Groovy版本:2.4.5 JVM 版本:1.7.0_75
似乎是 classpath 问题,但我还找不到解决方法。
问题已通过更新 Groovy 编译器设置得到解决。转到Window->Preferences->Groovy->Compiler,见下文:
这样做 resources.groovy 将被编译,bean 将在 运行 时间可用。