从grails控制器调用脚本文件夹下的脚本

时间:2015-07-06 06:37:04

标签: grails groovy

在我的Grails应用程序中,我正在尝试调用脚本文件夹

下的脚本

控制器代码

def invokeScript(){
        def bg= ["groovy","scripts/masterScript.groovy", request.JSON]
        bg.execute();
        render("Script Invoked")
    }

masterScript.groovy

println("Master Script Invoked with arguements " + args[0]);

预期输出

在控制台上:"使用争论调用的主脚本" 响应:调用脚本

实际输出

控制台上没有打印消息,但响应准确无误"脚本调用"

如果我从命令提示符显式调用masterScript,它可以正常工作并在控制台上打印。

请帮助并澄清以下内容

  1. 当从Controller
  2. 调用时,为什么我从控制台上的脚本中看不到任何消息
  3. 我可以在Scripts文件夹中的脚本中设置调试断点,因为它是异步调用。

1 个答案:

答案 0 :(得分:1)

.execute()返回Process个实例,它具有访问输出,错误和状态代码的方法。

因此回答“1”:因为您没有将命令的输出复制到控制台。请参阅文档:http://www.groovy-lang.org/groovy-dev-kit.html#process-management

对于'2':你不能,因为你把脚本称为外部过程。如果要评估Groovy脚本,而不是调用普通外部命令,最好使用GroovyScriptEngine

相关问题