使用Grails和Spring安全核心插件时出现InvalidPropertyException

时间:2014-07-25 19:08:05

标签: grails spring-security grails-plugin

我添加了spring core安全插件(同时尝试1.2.11.2.7.3) 到grails 1.3.7 app。 然后 s2-quickstart sim GUser GRole

尝试登录时会获得以下错误。

请告诉我如何解决这个问题?

HTTP status 500

    org.codehaus.groovy.grails.exceptions.InvalidPropertyException: No property found for name [gUser] for class [class sim.GUserGRole]
        org.codehaus.groovy.grails.commons.DefaultGrailsDomainClass.getPropertyByName(DefaultGrailsDomainClass.java:641)
        org.codehaus.groovy.grails.orm.hibernate.metaclass.AbstractClausedStaticPersistentMethod$GrailsMethodExpression.setArguments(AbstractClausedStaticPersistentMethod.java:127)
        org.codehaus.groovy.grails.orm.hibernate.metaclass.AbstractClausedStaticPersistentMethod.doInvokeInternal(AbstractClausedStaticPersistentMethod.java:535)
        org.codehaus.groovy.grails.orm.hibernate.metaclass.AbstractStaticPersistentMethod.invoke(AbstractStaticPersistentMethod.java:64)
        org.codehaus.groovy.grails.orm.hibernate.metaclass.AbstractStaticPersistentMethod.invoke(AbstractStaticPersistentMethod.java:57)
        org.codehaus.groovy.grails.commons.metaclass.StaticMethodInvocation$invoke.call(Unknown Source)
        org.codehaus.groovy.grails.plugins.orm.hibernate.HibernatePluginSupport$_addDynamicFinderSupport_closure17.doCall(HibernatePluginSupport.groovy:466)
        sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        java.lang.reflect.Method.invoke(Method.java:606)
        org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
        groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
        groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058)
        groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1070)
        groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
        groovy.lang.Closure.call(Closure.java:282)
        org.codehaus.groovy.runtime.metaclass.ClosureStaticMetaMethod.invoke(ClosureStaticMetaMethod.java:59)
        groovy.lang.MetaClassImpl.invokeStaticMissingMethod(MetaClassImpl.java:1355)
        groovy.lang.MetaClassImpl.invokeStaticMethod(MetaClassImpl.java:1343)
        groovy.lang.ExpandoMetaClass.invokeStaticMethod(ExpandoMetaClass.java:1082)
        org.codehaus.groovy.runtime.callsite.StaticMetaClassSite.call(StaticMetaClassSite.java:50)
        org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
        org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
        org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
        sim.GUser.getAuthorities(GUser.groovy:24)
        sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        java.lang.reflect.Method.invoke(Method.java:606)
        org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
        groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
        groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:1602)
        groovy.lang.ExpandoMetaClass.getProperty(ExpandoMetaClass.java:1099)
        groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:3311)
        groovy.lang.ExpandoMetaClass.getProperty(ExpandoMetaClass.java:1111)
        sim.GUser.getProperty(GUser.groovy)

...

谢谢, 小号

1 个答案:

答案 0 :(得分:0)

我怀疑大写例程存在问题,并且它正在绊倒像GUser和GRole这样的类名。尝试将它们命名为GrUser和GrRole(或任何不以2个大写字母开头的东西)。 Grails 1.3.7非常陈旧,GrailsNameUtils很早就出现了问题,没有像这样的名字做正确的事情。