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 アプリケーションからシェル/バット スクリプトを実行するにはどうすればよいですか

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 に答える