Execute o comando shell no Tomcat

Então, eu tenho o seguinte problema: Eu tenho um serviço da web em execução dentro de um servidor Tomcat7 no Linux. O serviço da Web, no entanto, precisa executar alguns comandos (principalmente operações de arquivo, como cópia e montagem). Copiar eu substituí com java.nio, mas eu não acho que há um substituto paramount.

Então, estou tentando executar comandos do shell do meu processo Java do Tomcat. Infelizmente não executa meus comandos. Eu já implementei a execução de comandos shell em Java antes. Então meu código deve estar correto:

Process pr = Runtime.getRuntime().exec("mount -o loop -t iso9660 <myimage> <mymountpoint>");
pr.waitFor();

<myimage> e<mymountpoint> são caminhos absolutos, então não há problemas também.

Depurei meus comandos e eles estão funcionando quando executados no console.Eu tentei enviar outros comandos. Comandos simples comoid epwd estão trabalhando!Eu tentei usar/bin/bash -c "<command>", o que não funcionou.Eu tentei executar um script de shell, que executa o comando, o que não funcionou.Eu tentei escapar dos espaços no meu comando, o que não funcionou.

Então, eu investiguei ainda mais e agora estou suspeitando de alguma política de segurança do Tomcat (Caixa de areia?), o que me impede de executar o comando. Como segurança não é problema para mim (é um sistema interno, completamente isolado do mundo externo), eu tentei um hack, que se tornou bastante popular recentemente:

System.setSecurityManager(null);

Isso não funcionou também. Estou usando o Java7 e o Tomcat7 no RHEL6. Tomcat7 acabou de ser extraído! Eu não tenho nenhum arquivo em / etc / .. ou qualquer outra pasta que não seja / opt / tomcat /, onde extraí o zip da home page do Tomcat. Eu procurei na pasta / opt / tomcat / conf por configurações de segurança, mas tudo o que consegui encontrar foi o arquivo catalina.policy, onde não parecia que eu poderia definir algum nível de segurança para os comandos do shell.

Alguma ideia?

questionAnswers(5)

yourAnswerToTheQuestion