我有一个与运行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);