Arquivo de properties + tomcat

3 respostas
E

Pessoal,
já alguns tópicos a respeito aqui, mas nenhum me ajudou…

É o seguinte, quero carregar um arquivo de properties a partir de uma classe que está no diretório /WEB-INF/classes de minha aplicação no Tomcat.

O arquivo de properties está no diretório /WEB-INF

Tenho o seguinte código para carregar o arquivo:

File file = new File("/WEB-INF/usuario.properties");    
	Properties props = new Properties();
	FileInputStream fis = null;
	try {
		fis = new FileInputStream(file);
		props.load(fis);
		fis.close();
	}
	catch (IOException e) {
		System.out.println(e.getMessage());
	}

Mas ele não acha o arquivo… não sei o que estou fazendo de errado. Falta algum classpath? Do tomcat tenho apenas o servlet.jar no classpath

Também tenho as seguintes variáveis de ambiente setadas:
JAVA_HOME - diretório de instalação do JAVA
CATALINA_HOME - diretório de instalação do Tomcat
TOMCAT_HOME - diretório de instalação do Tomcat

Desde já agradeço pelas respostas!

3 Respostas

landir

No examples do webapps do tomcat tem um arquivo HelloWorldExample que tem o seguinte:

public void doGet(HttpServletRequest request,
                      HttpServletResponse response)
        throws IOException, ServletException
    {
        ResourceBundle rb =
            ResourceBundle.getBundle("LocalStrings",request.getLocale());
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        out.println("<html>");
        out.println("<head>");

	    String title = rb.getString("helloworld.title");

	    out.println("<title>" + title + "</title>");
        out.println("</head>");
        out.println("<body bgcolor="white">");
        .
        .
        .

Ai ele abre um arquivo properties para internacionalizacao, acho que isso serve como exemplo, note que o arquivo fica na mesma pasta do servlet, por isso eh so colocar o nome dele: LocalStrings.

Espero ter ajudado.

Lucas;

M

Provalvemente o arquivo não é encontrado porque o construtor File(String fullPathName) precisa do path completo do arquivo.
Exemplo: c: omcatwebappsMyAppWEB-INFusuario.properties

Para encontrar o path completo voce poderá usar:

File(objHttpServlet.getServletContext().getRealPath(“WEB-INF/usuario.properties”))

Onde objHttpServlet é a Servlet criada na aplicação.

Espero ter ajudado.

Manau

E

Valeu manau!
Era esse mesmo o problema… eu achei que o diretório da aplicação no tomcat fazia parte do classpath da aplicação e, por consequencia, não era necessário colocá-lo no path para carregar o arquivo de properties.

Mas pelo jeito não adianta nem estar no classpath que é necessário colocar o full path? Ou o diretório da aplicação não faz parte do classpath da aplicação? E se o diretório não faz parte do classpath como faço para inclui-lo no classpath?

Criado 12 de agosto de 2003
Ultima resposta 15 de ago. de 2003
Respostas 3
Participantes 3