从cloudfoundry上部署的spring Web应用程序执行shell脚本

时间:2012-07-05 06:26:14

标签: shell cloudfoundry btrace

我试图从部署在cloudfoundry上的Spring Web应用程序调用Btrace脚本。

执行命令是/var/vcap/data/dea/apps/petclinic-0-fef4b0e052097a0cd2bedb8018c28dcd/tomcat/webapps/ROOT/WEB-INF/classes/bin/btrace.sh 532 / var / vcap / data / dea /apps/petclinic-0-fef4b0e052097a0cd2bedb8018c28dcd/tomcat/webapps/ROOT/WEB-INF/classes/bin/DatabaseQueries.java

但是我收到了这个错误:

java.io.IOException:无法运行程序“/var/vcap/data/dea/apps/petclinic-0-fef4b0e052097a0cd2bedb8018c28dcd/tomcat/webapps/ROOT/WEB-INF/classes/bin/btrace.sh”:java .io.IOException:error = 13,Permission denied

我将具有完全权限的应用程序推送到脚本,但错误仍然存​​在。

我们如何从cloudfoundry上的spring web应用程序执行shell / bat脚本

1 个答案:

答案 0 :(得分:3)

文件所有者可以读取/写入推送到Cloud Foundry的文件的权限。在运行之前,您需要从应用程序中使脚本可执行:

String btracePath = System.getenv().get("HOME") + "/tomcat/webapps/ROOT/WEB-INF/classes/bin/btrace.sh";
String cmd = "chmod +x " + btracePath;
Runtime run = Runtime.getRuntime();
Process pr = run.exec(cmd);
try {
    pr.waitFor();
} catch (InterruptedException ex) {
    ex.printStackTrace();
}