最新版本的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->编译器,请参见以下内容:

grails - Spring Tool Suite忽略了Grails文件resources.groovy-LMLPHP

这样做 resources.groovy 将被编译,并且bean将在运行时可用。

关于grails - Spring Tool Suite忽略了Grails文件resources.groovy,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35893949/

10-16 05:53