最新版本的STS(例如3.7.3)不再支持Grails,因此我将STS Gradle项目用作解决方法,以便通过“Spring Boot App”选项运行我的Grails应用程序。它工作正常,但是我遇到了以下问题:
问题:
当我通过以“Spring Boot App”运行的STS执行应用程序时,以某种方式忽略了 resources.groovy 文件下声明的所有bean。请注意,通过控制台“run-app”命令运行该应用程序可以正常工作。
异常(exception):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编译器设置解决了该问题。转到窗口->首选项-> Groovy->编译器,请参见以下内容:
这样做 resources.groovy 将被编译,并且bean将在运行时可用。
关于grails - Spring Tool Suite忽略了Grails文件resources.groovy,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35893949/