2

我正在尝试从部署在 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:错误=13,权限被拒绝

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

我们如何从 Cloudfoundry 上的 Spring Web 应用程序执行 shell/bat 脚本

4

1 回答 1

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();
}
于 2012-07-05T19:21:30.407 回答