Eu tenho um servlet que instancia classes de um pacote que eu criei (arquivo JAR). Esse pacote Lê um arquivo .properties que fica no CLASSPATH. Quando eu executo o servlet, não sei o que acontece, mas o servlet não me traz resultado algum, nem exceptions. Eu preciso colocar o arquivo .properties em alguma pasta do tomcat ($CATALINA_HOME) ?? O que eu faço ??
Por que vc não coloca o preperties em algum lugar como WEB-INF/conf/seu.properties e depois usa o getRealPath de ServletContext para recuperar o arquivo?! Dentro de um servlet fica algo como:
Se eu tenho uma aplicação normal, console ou swing/awt, funciona perfeitamente. Mas quando eu executo no Tomcat não funciona. O JAR está pronto e funcionando, quando não é usado via WEB/Tomcat
Como vc diz para a classe encontra o properties? E onde ele se localiza dentro do jar? No root do jar mesmo? Um ClassLoader encontra um resource qualquer baseado no local onde a classe está, mesmo que seja um .jar. Digamos que o properties esteja no mesmo diretorio que a classe que o carrega. Dentro dessa classe vc poderia fazer:
Class classe = this.getClass();
InputStream input = classe.getInputStream("seu.properties");
Properties prop = new Properties();
prop.load(input);
Nesse caso, como eu disse antes, basta colocar o properties no mesmo local da classe. Ele encontra mesmo que seja dentro do .jar
Cara você não entendeu, ou eu estou me expressando mal. O meu JAR consegue ler o .properties normalmente. O .properties fica em uma pasta qualquer e essa pasta esá no classpath. O problema é o seguinte, quando eu vou usar o JAR dentro de um servlet ele não me traz nenhuma informação.
Aham… agora entendi… dã…
Bom, se vc está com o arquivo no classpath do sistema, acho que um ResourceBundle seria o ideal para localizar o properties. Dá uma olhada nas docs.