não tenho problemas quando faço:
initContext = new InitialContext();
envContext = (Context) initContext.lookup("java:/comp/env");
ds = (DataSource) envContext.lookup("jdbc/postgres");
ou
initContext = new InitialContext();
envContext = (Context) initContext.lookup("java:/comp/env");
ds = (DataSource) envContext.lookup("jdbc/mysql");
ou seja, utilizando a String explicitamente (“jdbc/postgre” ou “jdbc/mysql”) consigo fazer lookup para o DataSource mas o problema está quando:
initContext = new InitialContext();
envContext = (Context) initContext.lookup("java:/comp/env");
ds = (DataSource) envContext.lookup(dataSource);
onde ‘dataSource’ é um valor que pego em um arquivo de properties. Já fiz testes e os valores estão vindo corretamente do arquivo de properties. A exception que obtenho é:
java.lang.NullPointerException
at javax.naming.NameImpl.(Unknown Source)
at javax.naming.CompositeName.(Unknown Source)
at org.apache.naming.NamingContext.lookup(NamingContext.java:194)
at br.unipar.avaliacao.model.dao.GenericDAO.conectar(GenericDAO.java:79)
at br.unipar.avaliacao.model.AvaliacaoImpl.carregarAvaliacao(AvaliacaoImpl.java:37)
at br.unipar.avaliacao.controller.ServletAvaliacao.carregar(ServletAvaliacao.java:156)
at br.unipar.avaliacao.controller.ServletAvaliacao.generateResponse(ServletAvaliacao.java:63)
at br.unipar.avaliacao.controller.ServletAvaliacao.doGet(ServletAvaliacao.java:41)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
...