Uma outra possibilidade para ler arquivos .properties no JBoss AS 7 é utilizar módulos. Desta forma, será possível obter o arquivo .properties utilizando um simples Thread.currentThread().getContextClassLoader().getResource("...") ou getResourceAsStream("...").
Os passos estão abaixo:
1. Crie um módulo com a seguinte estrutura de diretórios:
{jboss.home}/modules/propriedades/conf/main
2. Crie o arquivo module.xml em {jboss.home}/modules/propriedades/conf/main com o seguinte conteúdo
<module xmlns="urn:jboss:module:1.1" name="propriedades.conf">
<resources>
<resource-root path="arquivos"/>
</resources>
</module>
3. Crie o diretório arquivos na estrutura do módulo:
{jboss.home}/modules/propriedades/conf/main/arquivos
4. Adicionar o arquivo de propriedades na nova estrutura de diretórios, exemplo:
{jboss.home}/modules/propriedades/conf/main/arquivos/meuarquivo.properties
5. Adicionar o arquivo jboss-deployment-structure.xml no diretório WEB-INF da aplicação .war ([arquivo].war/WEB-INF/jboss-deployment-structure.xml) com o seguinte conteúdo:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="propriedades.conf" />
</dependencies>
</deployment>
</jboss-deployment-structure>
Note que propriedades.conf é o nome do módulo criado no passo 2.
Caso esteja utilizando um .ear, adicione o arquivo jboss-deployment-structure.xml no diretório META-INF
6. No código java, você poderá ler os atributos do arquivo .properties conforme abaixo:
Properties properties = new Properties();
properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("meuarquivo.properties"))
properties.get("nome-da-propriedade")
Um comentário:
Para projetos de localização usando arquivos .properties, eu recomendo esta plataforma de tradução do softwares - https://poeditor.com
Postar um comentário