Spring中的NoSuchFieldException错误是什么意思?

4
2723 [Thread-1] DEBUG org.springframework.core.env.StandardEnvironment  - Adding [systemEnvironment] PropertySource with lowest search precedence
2723 [Thread-1] DEBUG org.springframework.core.env.StandardEnvironment  - Initialized StandardEnvironment with PropertySources [systemProperties,systemEnvironment]
2725 [Thread-1] DEBUG org.springframework.beans.BeanUtils  - No property editor [org.springframework.security.web.authentication.logout.LogoutSuccessHandlerEditor] found for type org.springframework.security.web.authentication.logout.LogoutSuccessHandler according to 'Editor' suffix convention
2726 [Thread-1] DEBUG org.springframework.beans.TypeConverterDelegate  - **Field [/admin/login] isn't an enum value**
java.lang.NoSuchFieldException: /admin/login
    at java.lang.Class.getField(Class.java:1537)
    at org.springframework.beans.TypeConverterDelegate.attemptToConvertStringToEnum(TypeConverterDelegate.java:287)
    at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:218)
    at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:92)
    at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:451)

我在一个控制器中将/admin/login映射为一个路由:

@RequestMapping(value="/admin/login", method=RequestMethod.GET)
public ModelAndView getLoginPage(@RequestParam(value="failedAttempt", required=false) boolean failedAttempt, ModelMap model) {

除此之外,这个字符串还出现在spring-security.xml中。

在我的服务器启动时出现了这个错误。我甚至没有进入/admin/login页面。

我的安全性xml。

    <security:intercept-url pattern="/admin/login" access="permitAll"/>
    <security:intercept-url pattern="/admin/denied" access="permitAll"/>
    <security:intercept-url pattern="/admin/logout" access="permitAll"/>
    <security:intercept-url pattern="/admin/*" access="hasRole('AUTHOR')"/>
    <security:intercept-url pattern="/admin**" access="hasRole('AUTHOR')"/>
    <security:form-login 
        login-page="/admin/login" 
        login-processing-url="/admin/j_spring_security_check" 
        authentication-failure-url="/admin/login?failedAttempt=true"
        default-target-url="/admin/home"/>

        <security:logout
            invalidate-session="true"
            logout-success-url="/admin/login"
            logout-url="/admin/logout"/>
</security:http>

1
你能展示一下在 spring-security.xml 中如何使用吗? - Marty Pitt
1
我认为没有错误。在调试日志中有一个堆栈跟踪,但仅此而已。这个应用程序是否真的存在问题(如果是,您将需要提供更多细节来查看它是什么)? - Dave Syer
完整的异常堆栈跟踪是什么? - Boris Treukhov
1个回答

5

这并不是错误。只是在debug级别下的堆栈跟踪,Spring正在尝试定位正确的构造函数以用于登录成功处理程序(默认情况下有2个构造函数,只有一个与提供的字符串参数匹配,即“/admin/login”)。您可以忽略它,或者您可以将其关闭(在那个级别上进行调试记录通常不是非常有用的,并且您可能不希望在生产中开启它)。


这个“运行时错误”,它绝对是...肯定会引起问题。 - Marco Schoolenberg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接