caminho do arquivo no WebApplication usando o GlassFish

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.