Não funciona com o Glassfish

2 respostas
andwolf

Ola Sras. e Srs.

Estou com o seguinte problema, tenho um método que executa um shellscript e ele funciona normalmente quando executo ele em um projeto desktop, porém quando executo ele em um projeto web ele não funciona.

Utilizo o Glassfish3 Netbeans e ubunto 10

Metodo:
public void exibeMorfologia(){
        Process p;
        String stdIn = "";
        String stdErr = "";
        String  s;
       try {
            p = Runtime.getRuntime().exec("sh jspell.sh");
            BufferedReader stdInput = new BufferedReader(new
            InputStreamReader(p.getInputStream()));
            BufferedReader stdError = new BufferedReader(new
            InputStreamReader(p.getErrorStream()));
           
            while ((s = stdInput.readLine()) != null) {
                stdIn = stdIn + s + "\n";
            }

            while ((s = stdError.readLine()) != null) {
                stdErr = stdErr + s + "\n";
            }
            
                            
            System.out.println("Saida Padrao: \n" + stdIn);
            System.out.println("Saida Erro: \n" + stdErr);

        }
        catch (IOException ex) {
            ex.printStackTrace();
        }
}
ShellScrpit:
#!/bin/bash
ujspell -g < teste
exit
Resposta correta (Desktop):
run:
Saida Padrao: 
 International Jspell Version 1.84
* Eu 0 :lex(eu, [CAT=ppes,N=s,P=1,C=n], [], [], [])
* adoro 3 :lex(adorar, [CAT=v,T=inf,TR=t], [], [P=1,N=s,T=p], [])
* café 9 :lex(café, [CAT=nc,G=m,N=s], [], [], [])

Saida Erro: 

BUILD SUCCESSFUL (total time: 1 second)
Resposta errada:
run:
e fica assim indefinidamente

Para tentar entender o problema executei o scrpit manualmente de 4 formas

1- executei o script com todos os arquivos necessários na pasta raiz do meu usuário no ubunto -> FUNCIONA
2- executei o script com todos os arquivos necessários na pasta raiz do meu projeto web -> FUNCIONA
3- executei o script com todos os arquivos necessários na pasta onde é realizado o deploy do servidor -> NÃO FUNCIONA
4- executei o script com todos os arquivos necessários na pasta raiz do meu usuário no ubunto quando utilizando o caminho absoluto e estando na pasta do deploy do projeto ->NÃO FUNCIONA

As minhas perguntas, o Glassfish protege de alguma forma a pasta referente ao servidor?
É possivel tirar está proteção?
O glassfish não é o problma?
Alguém tem a solução?

Valeu

2 Respostas

Hebert_Coelho

Você tem certeza de que ele localizou o arquivo? Pode ser que ele não localizou.

Alguns servidores (não sei te falar no caso do glassfish) não liberam que as aplicações executem/gravem arquivos que se encontrem dentro dele.

andwolf

Então fiz este teste mandei executar um ls pela Runtime e printava o conteudo, e os dois arquivos apareciam lá.

Estou pesquisando mas até agora não tenho certeza se é mesmo o glassfish que faz isso

Criado 17 de maio de 2012
Ultima resposta 17 de mai. de 2012
Respostas 2
Participantes 2