PDA

View Full Version : [java web]chiamate di sistema da programma web


gepeppe
13-05-2010, 14:51
Salve, ho un'applicazione web eseguita tramite apache tomcat; in questa applicazione, formata da classi java, dovrei eseguire una chiamata di sistema (si trova su un server linux su cui ho tutti i permessi ecc) tramite exec.
Avrei bisogno però di passare al comando 2 parametri e impostare il valore di 3 variabili di ambiente, ma non riesco a capire come fare...sembra che se lo stesso comando viene dato da un'applicazione web (senza grafica e senza usare web) funzioni, mentre nel caso di un'applicazione web invece non va!!

Grazie

gepeppe
24-05-2010, 17:36
up

vladix
24-05-2010, 17:55
io direi di fare ciò utilizzando ssh ( puoi provare questa libreria (http://javassh.org/space/start) per la connessione al server ssh)

EDIT: e magari lo fai con un untenza che puo fare solo questo e niente di più

PGI-Bis
24-05-2010, 18:27
Salve, ho un'applicazione web eseguita tramite apache tomcat; in questa applicazione, formata da classi java, dovrei eseguire una chiamata di sistema (si trova su un server linux su cui ho tutti i permessi ecc) tramite exec.
Avrei bisogno però di passare al comando 2 parametri e impostare il valore di 3 variabili di ambiente, ma non riesco a capire come fare...sembra che se lo stesso comando viene dato da un'applicazione web (senza grafica e senza usare web) funzioni, mentre nel caso di un'applicazione web invece non va!!

Grazie

Si tratta con ogni probabilità di un problema di path. Tieni conto che non sempre c'è una corrispondenza tra ciò che funziona se digitato in un terminale tipo konsole o il prompt dei comandi e quello che puoi lanciare usando Process. Se esegui un programma nativo prova a specificare il percorso completo (es. anzichè new ProcessBuilder("bingo", "-d", "pimpumpam") new ProcessBuilder("c:\\programmi\\x\\bingo.exe", "-d", "pimpumpam")).

In alternativa potresti usare un wrapper JNI, per singole funzioni basta e avanza proprio un minimo di C.

gepeppe
25-05-2010, 10:45
Perchè utilizzare ssh? l'applicazione web gira sul server dove devo eseguire la system call. :D

Cmq quello che devo eseguire è un comando da shell linux di un'altra applicazione...se creo un'applicazione java e provo il comando tramite le system call funziona bene...se prendo la classe appena creata e la metto nell'applicazione web mi da degli errori.

Ho inserito il path completo e alcune variabili d'ambiente che gli servivano (dava un errore nell'esecuzione e chiedeva quelle variabili); però cmq non funziona..la system call va, ma da degli errori nel programma che chiamo XD (ma se provo comandi nativi linux, tipo ls, mkdir ec funziona bene da applicazione web :( )

khelidan1980
25-05-2010, 19:15
sei sicuro di non riuscire a trovare un jar che ti permetta questa funzionalità che ricavi da un eseguibile?Di cosa si tratta esattamente?Non sono un esperto di sicurezza ma non mi sembra proprio il modo migliore di procedre per un applicazione web

gepeppe
25-05-2010, 19:43
ho riavviato netbeans e ora funziona...bah..mistero dell'informatica :D