通过GrailsClassUtils检查插件中的Grails服务

时间:2014-10-21 15:25:10

标签: grails-2.0

我正在开发一个Grails(v.2.2.1)应用程序,它可以加载几个Grails插件。我想通过Bootstrap.groovy中的一些代码在启动时检查这些插件。

对于每个插件,我想检查服务并检测已实现的接口,以便我知道每个服务可用的功能。 我开始使用以下代码,仅检查名称与特定模式匹配的插件。:

def pluginManager = PluginManagerHolder.getPluginManager();
pluginManager.getAllPlugins().each {
    if(it.name.startsWith("cn") && it.name.endsWith("Connector")) {
       …
       String serviceName = ….
       …

       Object service = ctx.getBean(serviceName);
       println “Service:” + service /

       Class[] ints1 = GrailsClassUtils.getAllInterfaces(service);
       Class[] ints2 = GrailsClassUtils.getAllInterfacesForClass(service.getClass());
       …    
    }
}

println返回服务对象,它似乎以我期望的形式存在。 然后我尝试了两行/替代代码,然后都失败了。

第一个返回:

没有方法签名:static org.codehaus.groovy.grails.commons.GrailsClassUtils.getAllInterfaces()适用于参数类型:( ...)...

第二个回归:

没有方法签名:static org.codehaus.groovy.grails.commons.GrailsClassUtils.getAllInterfacesForClass()适用于参数类型:(java.lang.Class)...

第二种选择有点令人费解,因为该方法的签名是 getAllInterfacesForClass(java.lang.Class clazz)

两个问题:

  1. 这是一种可行的方法来找出服务的实现方式吗?
  2. 与GrailsClassUtils有什么关系?

0 个答案:

没有答案