DATASOURCE problema

luisbong
04 de Febrero del 2008
Hola, estoy haciendo una aplicacion en tomcat 5 y mysql, y quiero hacer un datasource pero me da 1 error. Aquí pongo el código:
SERVER.XML
<Context path="/Net-Test" docBase="Net-Test" debug="0" reloadable="true" useNaming="true">
<ResourceParams name="jdbc/dsnettest">

<!-- Para la config. de la fuente de datos -->
<parameter>
<name> driverClassName </name>
<value> com.mysql.jdbc.Driver </value>
</parameter>
<parameter>
<name> url </name>
<value> jdbc:mysql://localhost/nettest </value>
</parameter>
<parameter>
<name> username </name>
<value> root </value>
</parameter>
<parameter>
<name> password </name>
<value> 1901 </value>
</parameter>
</ResourceParams>
</Context>
CONTEXT.XML
<Context ...

<ResourceLink global="jdbc/dsnettest" name="jdbc/dsnettest" type="javax.sql.DataSource"/>
...
</Context>

WEB.XML
<servlet>
<servlet-name>IdentificacionServlet</servlet-name>
<servlet-class>IdentificacionServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>IdentificacionServlet</servlet-name>
<url-pattern>/servlet/IdentificacionServlet</url-pattern>
</servlet-mapping>
<resource-ref>
<res-ref-name> jdbc/dsnettest </res-ref-name>
<res-type> javax.sql.DataSource </res-type>
<res-auth> Container </res-auth>
</resource-ref>

EN EL SERVLET

Context init = new InitialContext();
Context context = (Context) init.lookup("java:comp/env");
DataSource ds = (DataSource) context.lookup("jdbc/dsnettest");
conn = ds.getConnection();

Y ME DA EL SIGUIENTE ERROR:

javax.naming.NameNotFoundException: El nombre jdbc no este asociado a este contexto
08-jul-2005 13:46:01 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() para servlet IdentificacionServlet lanzó excepción
java.lang.NullPointerException
at IdentificacionServlet.comprobarBD(IdentificacionServlet.java:101)
at IdentificacionServlet.doPost(IdentificacionServlet.java:83)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:731)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)

Muchas gracias por todo

jordi
04 de Febrero del 2008
Esta linea no seria

DataSource ds = (DataSource) context.lookup("jdbc/dsnettest");

asi

DataSource ds = (DataSource) context.lookup("java:comp/jdbc/dsnettest");

luisbong
04 de Febrero del 2008
Hola Jordi, puse lo que me sugieres y me sale ahora este error:
javax.naming.NameNotFoundException: El nombre java:comp no este asociado a este contexto
09-jul-2005 3:22:56 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() para servlet IdentificacionServlet lanzó excepción
java.lang.NullPointerException
at IdentificacionServlet.comprobarBD(IdentificacionServlet.java:101)
at IdentificacionServlet.doPost(IdentificacionServlet.java:83)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:731)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)

¿sabes a qué se debe?
Muchas gracias