Estou implementando jakarta-commons-dbcp. Enquanto testei com o postgre funcionou na boa, com o mysql também funcionou, porém quando vou utilizar os dois tive esta excessão:
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
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:75)
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)
...
...
<Context path="/MyDbcp" docBase="c:/webapps/mydbcp"
reloadable="true" debug="0" crossContext="true">
<Resource name="jdbc/postgres" auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/postgres">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.postgresql.Driver</value>
</parameter>
<!-- mais parâmetros -->
</ResourceParams>
<Resource name="jdbc/mysql" auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/mysql">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<!-- mais parâmetros -->
</ResourceParams>
</Context>
...
<resource-ref>
<description>PostgreSQL Data Source</description>
<res-ref-name>jdbc/postgres</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
<description>MySQL Data Source</description>
<res-ref-name>jdbc/mysqll</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
initContext = new InitialContext();
envContext = (Context) initContext.lookup("java:/comp/env");
ds = (DataSource) envContext.lookup(datasource);
estou lendo datasource é uma String que estou trazendo de um arquivo de properties que terá o valor "jdbc/postgres" ou "jdbc/mysql". Por que não consigo fazer lookup?