Eu estou usando uma class para obter um arquivo de propriedade na pasta de origem. Mas isso não funciona! Após a verificação, descobri que o caminho padrão usando
File f = new File("/src/ss.properties");
não é o caminho do aplicativo da web, mas o caminho de configuração do glassfish! O que posso fazer se eu quiser buscar o arquivo de propriedades armazenado no caminho “classs”? Normalmente, o caminho padrão é o caminho do projeto, você sabe.
Eu usei o ClassLoader.getResourceAsStream("sss")
.Mas retorna null! Tenho certeza que o nome do arquivo está correto porque eu tentei em outro aplicativo Java simples.
Atualização : usando
this.getClass().getClassLoader().getResourceAsStream("sectionMapping.properties");
ao invés de
ClassLoader.getSystemResource("sectionMapping.properties")
fez o truque! Eu quero saber porque?
Você deve usar getResourceAsStream
ou similar. Veja este post para saber como acessar resources. (Isso é independente do Glassfish – aplica-se a todos os servidores de aplicativos Java EE.)
Veja também este artigo do JavaWorld .
Atualização: Se o seu arquivo estiver no local src/ss.properties
, verifique se ele foi copiado para WEB-INF/classs
. Então, você deve poder acessá-lo com o seguinte código:
InputStream propStream = ClassLoader.getResourceAsStream("ss.properties");
ou (observe a barra inicial se estiver usando o método em java.lang.Class
)
InputStream propStream = Class.getResourceAsStream("/ss.properties");
Observe que o nome completo do arquivo (incluindo a extensão .properties
) precisa ser usado.
Se nenhum desses trabalhos funcionar, substitua a chamada getResourceAsStream
por getResource(...).openStream()
e publique detalhes da exceção que deve ser lançada.