版权声明:本文为博主原创文章,转载请注明出处 https://blog.csdn.net/imHanweihu/article/details/80647099
项目中自己写的方法:
第一句:获取tomcat加载项目完成后的路径,再拼接groovy的包路径
/**
* 反射动态调用groovy, 调用tt/sandy/APP/groovy/目录下的groovy
* Create by Hanweihu on 2018-06-13 pm
* @param groFullName groovy的全名(包括扩展名)
* @param params 参数,如果有多个,Object[] params = new Object[] {param1,param2,...};
* @param methodName 调用的方法名
* @return groovy计算的结果
*/
public Object useGroovyMethod(String groFullName, String methodName,Object params) {
try {
File sourceFile = new File(StringUtils.substring(Thread.currentThread().getContextClassLoader().getResource("")+"tt/sandy/APP/groovy/"+ groFullName, 6));
GroovyClassLoader loader = new GroovyClassLoader(Thread.currentThread().getContextClassLoader());
Class GroovyClass = loader.parseClass(sourceFile);
GroovyObject instance = (GroovyObject) GroovyClass.newInstance();
return instance.invokeMethod(methodName, params);
} catch (Exception e) {
System.out.println("调用groovy失败");
}
return "调用groovy失败";
}