02/04/2012, 17:53
|
| | Fecha de Ingreso: marzo-2012 Ubicación: Galicia
Mensajes: 27
Antigüedad: 12 años, 9 meses Puntos: 0 | |
Respuesta: No consigo empezar (Conexión tomcat-mysql) Después de estar rompiéndome la cabeza estos días os cuento hasta donde llegué.
Volví a empezar con el IDE Eclipse Helios e integré el Tomcat.
Recuerdo el código del servlet:
import javax.naming.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.sql.*;
import java.io.*;
import java.sql.*;
public class AccesoBD extends HttpServlet {
private DataSource fuenteDatos = null;
public void init(ServletConfig conf)
throws ServletException
{
super.init(conf);
Context ctx;
try{
ctx = new InitialContext();
fuenteDatos = (DataSource)
ctx.lookup("java:comp/env/jdbc/AccesoBD");
}
catch (NamingException e){
e.printStackTrace();
}
}
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
Connection conexion= null;
synchronized (fuenteDatos)
{
try{
conexion = fuenteDatos.getConnection();
}
catch (SQLException e) {
System.out.println("Excepcion");
e.printStackTrace();
}
}
PrintWriter out = res.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<h1>¡Conexión realizada¡</h1>");
out.println("</body>");
out.println("</html>");
try {
conexion.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
doGet(req, res);
}
} Comprobé con el system.out que se ejecuta el init, que la fuente de datos no es null y que aquí no salta ninguna excepción
La excepción salta ahora en el doGet, cuando se hace conexion = fuenteDatos.getconnection ()
Pongo el log:
Cuando se arranca el tomcat:
ADVERTENCIA: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:MiAcademia' did not find a matching property.
Cuando salta la excepcion:
Excepcion
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.create ConnectionFactory(BasicDataSource.java:1452)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.create DataSource(BasicDataSource.java:1371)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getCon nection(BasicDataSource.java:1044)
at AccesoBD.doGet(AccesoBD.java:36)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:717)
at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run( JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(Unknown Source)
at java.sql.DriverManager.getDriver(Unknown Source)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.create ConnectionFactory(BasicDataSource.java:1437)
... 17 more
03-abr-2012 1:21:59 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() para servlet AccesoBD lanzó excepción
java.lang.NullPointerException
at AccesoBD.doGet(AccesoBD.java:50)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:717)
at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run( JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
¿Sigues por ahí chuidiang, con ánimo de echar una mano?.
Muchas gracias. |