Ler arquivo Linux X Windows  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
Erex
Entusiasta Java

Membro desde: 26/10/2004 09:31:20
Mensagens: 20
Localização: São Paulo / Brasil
Offline

Estou tentando ler um arquivo "Properties" a partir de um diretorio no Linux.

O arquivo está dentro do contexto de uma aplicacao no tomcat.

Ex: tomcat/app/WEB-INF/diretorio/arquivo.properties

Criei um objeto "File" para armazenar o conteudo do arquivo. Para isso indiquei como caminho "../WEB-INF/diretorio/arquivo.properties"

Quando rodo minha aplicacao no Windows, beleza, dá tudo certo, mas quando rodo no linux ocorre uma exceção, a famosa NullPointerException.

Por quê no Linux não funciona?? Como posso resolver o problema??

Rafael Steil
Administrador
[Avatar]

Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline

Pq ocorre a NPE? qual linha de codigo eh? o arquivo eh encontrado?

Rafael

"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"

http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil
[Email] [WWW]
Erex
Entusiasta Java

Membro desde: 26/10/2004 09:31:20
Mensagens: 20
Localização: São Paulo / Brasil
Offline

Pelo que eu entendi o arquivo não é encontrado!!

Parece que no Linux o ../ não funciona como no Windows
Rafael Steil
Administrador
[Avatar]

Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline

Post ai a parte *relevante* de codigo que vc esta usando.

Rafael

"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"

http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil
[Email] [WWW]
Erex
Entusiasta Java

Membro desde: 26/10/2004 09:31:20
Mensagens: 20
Localização: São Paulo / Brasil
Offline

Segue ai o codigo:



Estou utilizando o Tomcat 4.1.31

Quando utilizo no Windows OK
Quanto utilizo no Linux aparece a mensagem NullPointerException acredito que ele não consegue "enxergar" o arquivo, vc tem alguma sugestão??

Obrigado
Rafael Steil
Administrador
[Avatar]

Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline

Bom, a forma como vc esta fazendo eh um pouco fora do comum, ja que voce esta assumindo certas propriedades do ambiente. Uma opcao eh voce criar um diretorio "config" em WEB-INF/classes e usar um codigo como o seguinte para pegar os arquivos:



Rafael

"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"

http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil
[Email] [WWW]
Erex
Entusiasta Java

Membro desde: 26/10/2004 09:31:20
Mensagens: 20
Localização: São Paulo / Brasil
Offline

Uma dúvida, por quê não posso referenciar este arquivo fora do diretorio "classes", não poderia referenciá-lo no local onde estava antes (fora do diretório "classes")?
É realmente necessário criar o diretório "config" dentro do diretório "classes" ??

Só gostaria de entender o que acontece!! Dei uma olhada no JavaDoc mas não ficou claro.

De qualquer forma muito obrigado!!
Rafael Steil
Administrador
[Avatar]

Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline

O diretorio pode se chamar qualquer coisa.. "config" foi simplesmente para efeitos praticos.
Voce pode referenciar qualquer diretorio em qualquer lugar, desde que tenha permissao para tal. O problema com o teu ../ eh que voce esta assumindo que o diretorio padrao eh "X" sempre, o que opde nao ser verdade dependendo do sistema operacional / container usado / forma de configuracao do mesmo.

Se voce quiser, pode usar o getServletContext().getRealPath("") para pegar o diretorio fisico raiz da tua aplicacao web, e entao adiciopnar o restro da estrutura de diretorios, como em



Rafael

This message was edited 2 times. Last update was at 15/02/2005 11:31:30


"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"

http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil
[Email] [WWW]
Erex
Entusiasta Java

Membro desde: 26/10/2004 09:31:20
Mensagens: 20
Localização: São Paulo / Brasil
Offline

Rafael,

eu cheguei a utilizar o caminho através do contexto do Servlet mas achei interessante sua sugestão através do método:



A restrição que eu não consegui solucionar, para este caso, foi colocar meu arquivo de propriedades "arquivo.xxxx" em um diretório que não fosse um subdiretório de app/WEB-INF/classes/

Quando meu arquivo.xxx está em algum subdiretório do diretório /classes, a aplicação funciona, quando coloco o arquivo em outro diretório que não um subdiretório de /classes Ex: app/WEB-INF/config/arquivo.xxxx não funciona.

Só gostaria de saber por quê isso ocorre??

O método em destaque neste Post só "enxerga" os arquivos que estão contidos em algum subdiretório de /classes??

Bem, de qualquer forma, a solução resolveu o problema.

Muito obrigado!!

Rafael Steil
Administrador
[Avatar]

Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline

Entao, somente funciona dentro do classes mesmo, que eh um diretorio que esta no classpath. Ate tem uma outra forma de, usando o getResourceAsStream(), "navegar" por uma estrtutura direferente, mas da bastante trabalho e eh sucetivel a erros. Essa maneira como passei eh bastante usada no dia-a-dia, portanto nao eh nenhuma trick.

Rafael

"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"

http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil
[Email] [WWW]
Erex
Entusiasta Java

Membro desde: 26/10/2004 09:31:20
Mensagens: 20
Localização: São Paulo / Brasil
Offline

Aí Rafael, valeu mesmo, obrigado!!!

Aproveitando a oportunidade, parabéns pelo JForum, é show de bola!!


Vc tem alguma previsão de nova versão do JForum??


[]´s
Rafael Steil
Administrador
[Avatar]

Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline

Erex wrote:
Vc tem alguma previsão de nova versão do JForum??


Estou comecando a testar a 2.1, mas geralmente nao defino uma data. Lanco qdo considero que esta pronto

Rafael

"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"

http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil
[Email] [WWW]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team