我添加了spring core安全插件(同时尝试1.2.1
和1.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)
...
谢谢, 小号
答案 0 :(得分:0)
我怀疑大写例程存在问题,并且它正在绊倒像GUser和GRole这样的类名。尝试将它们命名为GrUser和GrRole(或任何不以2个大写字母开头的东西)。 Grails 1.3.7非常陈旧,GrailsNameUtils很早就出现了问题,没有像这样的名字做正确的事情。