【发布时间】:2010-09-30 21:26:13
【问题描述】:
我正在尝试构建一个可以进行 LDAP 查找的 Grails 应用程序。我一直在关注一些指南(link text 和其他一些指南),但恐怕没有尽头。
相关源码: 来自 config.groovy:
ldap {
directories {
dir1 {
url = "ldap://dc01"
base = "ou=someou,dc=check,dc=nl"
userDn = "cn=Administrator,cn=Users,dc=check,dc=nl"
password = "wowthisisnothepassword"
}
}
schemas = [
ldapclient.GldapoSchemaClassForUser
]}
我的域类:
package ldapclient
import gldapo.schema.annotation.GldapoNamingAttribute
import gldapo.schema.annotation.GldapoSynonymFor
import gldapo.schema.annotation.GldapoSchemaFilter
@GldapoSchemaFilter("(objectclass=person)")
class GldapoSchemaClassForUser {
@GldapoNamingAttribute
String uid
@GldapoSynonymFor("cn")
String name
@GldapoSynonymFor("mail")
String email
@GldapoSynonymFor("uid")
String username
@GldapoSynonymFor("fullname")
String fullName
}
还有我的控制器:
package ldapclient
class AdController {
def defaultAction = "list"
List matches = GldapoSchemaClassForUser.findAll(
filter: "(name=s*)"
)
def list = {
[ "adMatches" : matches.list() ]
}}
虽然我的程序符合(据我所知)根据许多文档应该工作的内容,但我无法运行它。抛出的错误:
原因:groovy.lang.MissingMethodException:没有方法签名:静态 ldapclient.GldapoSchemaClassForUser.findAll() 适用于参数类型:(java.util.LinkedHashMap) 值:[[filter:(name= s)]] 在 ldapclient.AdController.(AdController.groovy:6)*
任何线索发生了什么/错了吗?我正在使用 Grails 1.2.3 并使用最新版本的 LDAP 插件。该项目是干净的(新创建的)。
提前致谢!
感谢您的回复;我刚刚升级到 Grails 1.3.4 并移动了一些文件。这做了一些好事,虽然我仍然得到这个讨厌的错误:
Error creating bean with name 'ldapclient.AdController': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [ldapclient.AdController]: Constructor threw exception; nested exception is groovy.lang.MissingMethodException: No signature of method: static ldapclient.GldapoSchemaClassForUser.findAll() is applicable for argument types: (java.util.LinkedHashMap) values: [[directory:dir1, filter:(uid=myname,ou=st,ou=ouou,dc=dc,dc=dcdc)]] Possible solutions: findAll(groovy.lang.Closure), find(groovy.lang.Closure)
【问题讨论】:
标签: grails groovy active-directory ldap findall