Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从MuleStudio和Mule Maven Standalone访问类路径资源?_Maven_Groovy_Mule_Mule Studio - Fatal编程技术网

如何从MuleStudio和Mule Maven Standalone访问类路径资源?

如何从MuleStudio和Mule Maven Standalone访问类路径资源?,maven,groovy,mule,mule-studio,Maven,Groovy,Mule,Mule Studio,如何使用Groovy脚本从src/main/resources访问类路径资源?以下脚本适用于MuleStudio,但不适用于Mule Maven standalone。有没有一种方法可以编写脚本,从MuleStudio和MuleMaven standalone中提取正确的资源 <scripting:component doc:name="Script"> <scripting:script engine="Groovy"><![CDATA[

如何使用Groovy脚本从src/main/resources访问类路径资源?以下脚本适用于MuleStudio,但不适用于Mule Maven standalone。有没有一种方法可以编写脚本,从MuleStudio和MuleMaven standalone中提取正确的资源

<scripting:component doc:name="Script">
    <scripting:script engine="Groovy"><![CDATA[
        def command = "src/main/resources/shellscript/shellscriptfile.sh"
        def cmd = command.execute()
        cmd.waitFor()]]>
    </scripting:script>
</scripting:component>

您应该将该命令作为类路径资源加载,而不是尝试构建在所有情况下都有效的路径:

def command = this.getClass().getResource('/shellscript/shellscriptfile.sh').path
def cmd = command.execute()
cmd.waitFor()

问题在于,在MuleStudio中,类路径目录是projectDir/classes/src/main/resources/shellscript,但在独立版本中,类路径是apps/projectDir/classes/shellscript。有没有一种方法可以编写一个Groovy脚本来自动确定包含classes文件夹的应用程序主目录?谢谢David。还有一件事要补充。Groovy将其作为URL对象读取,并尝试在其上运行不存在的execute()方法。只需要在末尾添加.getPath(),使其成为可执行的shell脚本命令
def command=this.getClass().getResource('/scripts/RequestReturnBatch.sh').getPath()
def cmd=command.execute()
cmd.waitFor()]>