java - 如何将值从 groovy 返回到 java

标签 java groovy

我有一个 jsp 页面绑定(bind)到运行 groovy 脚本的 servlet。我能够从 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);

关于java - 如何将值从 groovy 返回到 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5267481/

相关文章:

java - 如何删除 ElasticSearch 索引?

java - 如何使用HQL从实体中获取数据?

java - 不兼容的操作数类型 r.integer 和 int

java - 使用 foreach 循环创建 JSON 文档

grails - 当显示在.gsp View 中时,如何使GroovyfirstRowResult仅列出值,而不列出列标题且不包含花括号?

maven - Groovy Grape 从哪里获取依赖项?

JavaFX:如何在不增加容器(标签、按钮)大小的情况下增加文本大小?

java - NativeScript HelloWorld build.gradle错误

groovy - 有没有办法将常量传递给 Groovy 中的注释?

java - 无法在 nixos 上运行 groovy 脚本