我有一个与运行groovy脚本的servlet绑定的jsp页面。我可以从servlet进入groovy脚本。但是,脚本运行后,如何将groovy脚本的响应返回给servlet,以便在jsp页面中显示?

我的Java Servlet代码如下:

File file = new File("TestScript.groovy");
ClassLoader parent = getClass().getClassLoader();
GroovyClassLoader loader = new GroovyClassLoader(parent);
Class groovyClass = loader.parseClass(file);
Object[] args = {};
GroovyObject groovyObject = (GroovyObject) groovyClass.newInstance();
groovyObject.invokeMethod("runTest", args);

更新:

我也研究了groovyscriptengine和grovyshell,但是当尝试运行那些时,出现以下异常:
org.codehaus.groovy.runtime.metaclass.MissingMethodExceptionNoStack:方法无签名:
运行测试

这就是我测试脚本中的内容。也许我没有正确退货。
class TestScript
{
 @Test
 public String runTest()
 {
  //run test
  return response
 }
}

最佳答案

runTest groovy方法返回要传递给servlet的值,并将其捕获为groovyObject.invokeMethod的返回值:

Object ret = groovyObject.invokeMethod("runTest", args1);
System.out.println("In Java " + ret);

10-07 13:11