如何从MuleStudio和Mule Maven Standalone访问类路径资源?
如何使用Groovy脚本从src/main/resources访问类路径资源?以下脚本适用于MuleStudio,但不适用于Mule Maven standalone。有没有一种方法可以编写脚本,从MuleStudio和MuleMaven 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[
<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()]>