Leitura de arquivo de configuração em site web "FileNotFoundException

7 respostas
V

Pessoal,

Tenho um site em java que faz acesso ao banco de dados utilizando JDBC.
A minha string de conexão, usuário, senha e driver do banco estão todos inseridos diretamente no código fonte do site.

Eu gostaria de inserir esses dados em um arquivo de configuração (.ini, .txt, etc.) para tanto eu criei o seguinte método:

private void SetaDadosBanco(){  
         String string_Linha = "";  
         int int_ContadorLinha = 0;  
         boolean boolean_Eof = false;  
              
         try{  
            // Abre o arquivo  
            FileReader fileReader_Arq = new FileReader("/utilacia/utilacia.ini");  
            BufferedReader bufferedReader_Buffer = new BufferedReader(fileReader_Arq);  
              
           // Le os dados do arquivo  
           while(!boolean_Eof){  
                 
              int_ContadorLinha++;  
               
              string_Linha = bufferedReader_Buffer.readLine();  
                 
              if(string_Linha == null){  
                 boolean_Eof = true;  
              }  
              else {  
                 if(int_ContadorLinha == 1){  
                    strDriver = string_Linha;  
                 }else if(int_ContadorLinha == 2){  
                    strConexao = string_Linha;  
                 }else if(int_ContadorLinha == 3){  
                    usuario = string_Linha;  
                 }else if(int_ContadorLinha == 4){  
                    senha = string_Linha;  
                 }  
              }  
           }  
           log.geraLog("Driver: " + strDriver);  
           log.geraLog("Conexao: " + strConexao);  
           log.geraLog("Usuario: " + usuario);  
           log.geraLog("Senha: " + senha);  
           // Fecha o arquivo  
           bufferedReader_Buffer.close();  
           fileReader_Arq.close();  
        } catch (IOException e){  
           log.geraLog("Conexao:SetaDadosBanco - " + e.toString());  
           log.geraLog("Driver: " + strDriver);  
           log.geraLog("Conexao: " + strConexao);  
           log.geraLog("Usuario: " + usuario);  
           log.geraLog("Senha: " + senha);  
        }  
     }

No entanto ele sempre está gerando um “FileNotFoundException” dizendo que o arquivo não foi encontrado.
Já espalhei meu arquivo de configuração em praticamente todas as pastas do diretório aonde o site fica hospedado (inclusive inserindo no proprio arquivo .war) e ele continua gerando essa exceção…

Alguem pode me dizer aonde eu devo colocar o arquivo de configuração, ou então, como eu devo passar o caminho dele para o objeto FileReader??

Obrigado pessoal,

Valeu!

7 Respostas

B

tente ir na pasta que esta o arquivo e digite o comando pwd… ai tente com o caminho exibido…

Mero_Aprendiz

vicentevieira:
Pessoal,

Tenho um site em java que faz acesso ao banco de dados utilizando JDBC.
A minha string de conexão, usuário, senha e driver do banco estão todos inseridos diretamente no código fonte do site.

Eu gostaria de inserir esses dados em um arquivo de configuração (.ini, .txt, etc.) para tanto eu criei o seguinte método:

private void SetaDadosBanco(){  
         String string_Linha = "";  
         int int_ContadorLinha = 0;  
         boolean boolean_Eof = false;  
              
         try{  
            // Abre o arquivo  
            FileReader fileReader_Arq = new FileReader("/utilacia/utilacia.ini");  
            BufferedReader bufferedReader_Buffer = new BufferedReader(fileReader_Arq);  
              
           // Le os dados do arquivo  
           while(!boolean_Eof){  
                 
              int_ContadorLinha++;  
               
              string_Linha = bufferedReader_Buffer.readLine();  
                 
              if(string_Linha == null){  
                 boolean_Eof = true;  
              }  
              else {  
                 if(int_ContadorLinha == 1){  
                    strDriver = string_Linha;  
                 }else if(int_ContadorLinha == 2){  
                    strConexao = string_Linha;  
                 }else if(int_ContadorLinha == 3){  
                    usuario = string_Linha;  
                 }else if(int_ContadorLinha == 4){  
                    senha = string_Linha;  
                 }  
              }  
           }  
           log.geraLog("Driver: " + strDriver);  
           log.geraLog("Conexao: " + strConexao);  
           log.geraLog("Usuario: " + usuario);  
           log.geraLog("Senha: " + senha);  
           // Fecha o arquivo  
           bufferedReader_Buffer.close();  
           fileReader_Arq.close();  
        } catch (IOException e){  
           log.geraLog("Conexao:SetaDadosBanco - " + e.toString());  
           log.geraLog("Driver: " + strDriver);  
           log.geraLog("Conexao: " + strConexao);  
           log.geraLog("Usuario: " + usuario);  
           log.geraLog("Senha: " + senha);  
        }  
     }

No entanto ele sempre está gerando um “FileNotFoundException” dizendo que o arquivo não foi encontrado.
Já espalhei meu arquivo de configuração em praticamente todas as pastas do diretório aonde o site fica hospedado (inclusive inserindo no proprio arquivo .war) e ele continua gerando essa exceção…

Alguem pode me dizer aonde eu devo colocar o arquivo de configuração, ou então, como eu devo passar o caminho dele para o objeto FileReader??

Obrigado pessoal,

Valeu!

Olá.
Acredito que o problema esta no caminho que é passado para o FileReader, já que você passa “/utilacia/utilacia.ini” ao invés de “c:\CAMINHO_ATE_A_APLICACAO\utilacia\utilacia.ini”
Tive uma conversa com o Tchello uma vez que acho que pode te ajudar a pegar o caminho completo até o seu arquivo de configuração:
http://www.guj.com.br/posts/list/130289.java

[]'s
JL

V

Valeu galera!

vou tentar seguindo essas dicas ae…

t+

V

Não funcionou =/

Eu preciso de alguma maneira pra pegar o endereço do site no servidor de forma dinâmica… algo do tipo: “Server.GetRealPath()

Existe algum método que faça isso???

abraço

Mero_Aprendiz

vicentevieira:
Não funcionou =/

Eu preciso de alguma maneira pra pegar o endereço do site no servidor de forma dinâmica… algo do tipo: “Server.GetRealPath()

Existe algum método que faça isso???

abraço

Olá.
Fazendo…

final String caminho = request.getSession().getServletContext().getRealPath("/");

Não te ajudou?

[]'s
JL

eliangela

tenho uma pergunta pra vc:
o seu arquivo está dentro do JAR (do seu projeto Java) ou fora?

Se o seu arquivo estiver dentro das pastas do projeto, vc deve fazer assim:

java.io.File f = new java.io.File(getClass().getResource("/seuPacoteJava/outroPacoteJava/arquivo.ext").toURI());
V

ele está dentro do arquivo .jar, mas ja tentei fazer sem ele estar no .jar também…

vlw

Criado 26 de janeiro de 2010
Ultima resposta 29 de jan. de 2010
Respostas 7
Participantes 4