Foros del Web » Programación para mayores de 30 ;) » Java »

No consigo empezar (Conexión tomcat-mysql)

Estas en el tema de No consigo empezar (Conexión tomcat-mysql) en el foro de Java en Foros del Web. Hola, estoy empezando con el java, tomcat, mysql con el objetivo de aprender a hacer una web con accceso a base de datos pero me ...
  #1 (permalink)  
Antiguo 20/03/2012, 18:32
 
Fecha de Ingreso: marzo-2012
Ubicación: Galicia
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 0
No consigo empezar (Conexión tomcat-mysql)

Hola, estoy empezando con el java, tomcat, mysql con el objetivo de aprender a hacer una web con accceso a base de datos pero me estoy tropezando con una piedra que no me permite ni siquiera arrancar. Os ruego que me echeis una mano.

Mi context.xml:

<Context path="/bdacademia" docBase="bdacademia"
debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/bdacademia" auth="Container"
type="javax.sql.DataSource" maxActive="100"
maxIdle="30" maxWait="10000" username="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/bdacademia"/>
</Context>

Mi web.xml:

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/dtd/web-app_2_3.dtd">

<servlet>
<servlet-name>AccesoBD</servlet-name>
<servlet-class>AccesoBD</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>AccesoBD</servlet-name>
<url-pattern>/AccesoBD</url-pattern>
</servlet-mapping>


<resource-ref>
<res-ref-name>jdbc/bdacademia</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

</web-app>

Mi archivo accesobd.java

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/bdAcademia");
}
catch (NamingException e){
e.printStackTrace();
}
}

public 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) {
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();
}
}

public void doPost(HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {
doGet(req, res);
}
}

Dentro de index.html:

...
<form action="AccesoBD" method="post">
<label for="usuario"> Usuario </label>
<br/>
<input type="text" name="usuario" value="" />
<br/>
<br/>
<label for="contrasenha"> Contrase&ntildea </label>
<br/>
<input type="password" name="contrasenha" value="" />
<br/>
<br/>
<br/>
<input type="submit" name="aceptar" value="ACEPTAR" />
&nbsp;
<input type="reset" name="limpiar" value="LIMPIAR" />
<br/>
<br/>
<br/>
</form>
...

Trabajo con windows vista, tomcat 6.0.35, xampp 2.5
El tomcat funciona (la dirección localhost:8080/academia/index.html muestra la página) pero cuando intenta la conexión a la bd me da el siguiente error:

Estado HTTP 500 -

--------------------------------------------------------------------------------

type Informe de Excepción

mensaje

descripción El servidor encontró un error interno () que hizo que no pudiera rellenar este requerimiento.

excepción

java.lang.NullPointerException
AccesoBD.doGet(AccesoBD.java:28)
AccesoBD.doPost(AccesoBD.java:63)
javax.servlet.http.HttpServlet.service(HttpServlet .java:637)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)


nota La traza completa de la causa de este error se encuentra en los archivos de diario de Apache Tomcat/6.0.35.

---------------------------

Estoy desesperado porque no encuentro la manera de arreglarlo y ni siquiera puedo empezar a trabajar, a aprender. ¿Qué está mal?

Muchísimas gracias, a ver si me podeis echar un cable.
  #2 (permalink)  
Antiguo 20/03/2012, 19:23
Avatar de Sirius381  
Fecha de Ingreso: abril-2006
Mensajes: 129
Antigüedad: 18 años
Puntos: 12
Respuesta: No consigo empezar (Conexión tomcat-mysql)

Perdon, no me lei el post completo, solo una duda, todo se encuentra en el mismo equipo? o tienes el tomcat en un server con la base de datos (MySQL) y estas intentando acceder desde otro equipo? (Java) por defecto MySQL no permite conexiones remotas, tienes que editar el archivo de configuracion y permitir las conexiones remotas, es muy facil, si ese es el caso avisame y te ayudo, si no es el caso, revisa tu conexion (el objeto que creas en Java) Statement, e driver etc, cualquier cosa aqui andamos.

Saludos!
__________________
Don Ramón Fan
  #3 (permalink)  
Antiguo 21/03/2012, 03:21
 
Fecha de Ingreso: marzo-2012
Ubicación: Galicia
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: No consigo empezar (Conexión tomcat-mysql)

Es en el mismo equipo.

He creado la bd con el administrador de mysql.
Con el código que tengo sólo pretendo comprobar que conecta, no hago ninguna consulta ni nada.
En el index.html voy a hacer un formulario de autentificación y con este código sólo pretendo asegurarme de que conecta, es decir cubro en el formulario el usuario y contraseña y si no estoy equivocado al darle a submit debería darme
"conexión realizada", independientemente de si existe o no el usuario ¿no?

index.html

<form action="AccesoBD" method="post">
<label for="usuario"> Usuario </label>
<br/>
<input type="text" name="usuario" value="" />
<br/>
<br/>
<label for="contrasenha"> Contrase&ntildea </label>
<br/>
<input type="password" name="contrasenha" value="" />
<br/>
<br/>
<br/>
<input type="submit" name="aceptar" value="ACEPTAR" />
&nbsp;
<input type="reset" name="limpiar" value="LIMPIAR" />
<br/>
<br/>
<br/>
</form>
...

AccesoBD.java

public 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) {
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();
}
}

Muchas gracias por intentar ayudarme
  #4 (permalink)  
Antiguo 21/03/2012, 07:12
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: No consigo empezar (Conexión tomcat-mysql)

Hola:

si te sigue dando esto

java.lang.NullPointerException
AccesoBD.doGet(AccesoBD.java:28)

es porque en la linea 28 de AccesoBD.java hay algo que es null y estás intetando usar. Contando por encima las líneas del código del primer post, da la impresión de fuenteDatos es null, por lo que quizás tu método init() no se esté llamando, o bien se le llama pero la fuenteDatos se queda a null.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 21/03/2012, 11:05
 
Fecha de Ingreso: marzo-2012
Ubicación: Galicia
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: No consigo empezar (Conexión tomcat-mysql)

Hola chuindang:
muchísimas gracias por la ayuda. Tiene mucha lógica lo que dices y pensaba que ya me habías resuelto el problema pero desgraciadamente sigue sin funcionar.

Ejecuto en el navegador http://localhost:8080/Academia/AccesoBD y me da el siguiente error:

Estado HTTP 500 -

--------------------------------------------------------------------------------

type Informe de Excepción

mensaje

descripción El servidor encontró un error interno () que hizo que no pudiera rellenar este requerimiento.

excepción

java.lang.NullPointerException
AccesoBD.doGet(AccesoBD.java:28)
javax.servlet.http.HttpServlet.service(HttpServlet .java:617)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)


nota La traza completa de la causa de este error se encuentra en los archivos de diario de Apache Tomcat/6.0.35.

------------------------

Estoy convencido que el problema es el que indicas (gracias por descubrírmelo): no se ejecuta init y por eso fuenteDatos es nulo o bien fuenteDatos se queda null pero... ¿porqué?
¿Hay algún problema con esto?

ctx = new InitialContext();
fuenteDatos = (DataSource)
ctx.lookup("java:comp/env/jdbc/bdAcademia");

El tomcat está funcionando, el mysql también y tengo la base creada con el administrador de mysql. Tengo el conector en el tomcat en el mysql y en el classpath. No lo entiendo

Espero haberme explicado bien.
Muchísimas gracias por la ayuda.
  #6 (permalink)  
Antiguo 21/03/2012, 12:21
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: No consigo empezar (Conexión tomcat-mysql)

Pon algo de log, mira a ver si se ejecuta y en caso de que se ejecute si lookup está devolviendo null. Revisa también que no salta la excepción que tienes capturada en el init().

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #7 (permalink)  
Antiguo 22/03/2012, 11:21
 
Fecha de Ingreso: marzo-2012
Ubicación: Galicia
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: No consigo empezar (Conexión tomcat-mysql)

Hola otra vez:

le meto un showmessage aquí:

super.init(conf);
JOptionPane.showMessageDialog (null,"Se ejecuta init");
Context ctx;

para comprobar si se ejecuta el init

pero cuando meto en el navegador http://localhost:8080/Academia/AccesoBD

el navegador se queda colgado ¿?

Gracias por ayudar.
  #8 (permalink)  
Antiguo 22/03/2012, 11:23
 
Fecha de Ingreso: marzo-2012
Ubicación: Galicia
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: No consigo empezar (Conexión tomcat-mysql)

No es que se bloquee, es que se queda buscando, buscando ... eternamente hasta que lo cierro
  #9 (permalink)  
Antiguo 22/03/2012, 13:16
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: No consigo empezar (Conexión tomcat-mysql)

Hola:

El JOptionPane se abre en el servidor y hasta que no pulses click en él, el código se queda esperando que cierres el JOptionPane. Eso sí, si tu servidor lo estás arrancando como "demonio" o "servicio", igual no tiene disponible pantalla para mostar el JOptionPane....

Con lo "log" me refería a un System.out o similar que luego tendrás que ir a buscar en los ficheros de log de tu servidor....

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #10 (permalink)  
Antiguo 22/03/2012, 18:40
 
Fecha de Ingreso: marzo-2012
Ubicación: Galicia
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: No consigo empezar (Conexión tomcat-mysql)

Pues a ver si me puedes iluminar con los logs:

El primero (localhost) parece que correcto:

23-mar-2012 1:13:35 org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextDestroyed()
23-mar-2012 1:13:35 org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextDestroyed()
23-mar-2012 1:14:47 org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
23-mar-2012 1:14:47 org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()

El segundo (tomcat6-stderr), resalto en color lo que me llama la atención:

2012-03-23 01:14:45 Commons Daemon procrun stderr initialized
23-mar-2012 1:14:46 org.apache.catalina.core.AprLifecycleListener init
INFO: La biblioteca nativa de Apache Tomcat basada en ARP que permite un rendimiento óptimo en entornos de desarrollo no ha sido hallada en java.library.path: C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin;C:\Windows\Sun\Java\bin;C:\Windows\system3 2;C:\Windows;C:\Windows\system32;C:\Windows;C:\Win dows\System32\Wbem;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;c:\php;C:\Program Files\QuickTime\QTSystem\;C:\Windows\System32\Wind owsPowerShell\v1.0\;C:\Program Files\GNU\GnuPG;C:\Program Files\Java\jdk1.6.0_27\bin;C:\Program Files\Intel\WiFi\bin\;.
23-mar-2012 1:14:46 org.apache.coyote.http11.Http11Protocol init
INFO: Inicializando Coyote HTTP/1.1 en puerto http-8080
23-mar-2012 1:14:46 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 457 ms
23-mar-2012 1:14:46 org.apache.catalina.core.StandardService start
INFO: Arrancando servicio Catalina
23-mar-2012 1:14:46 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.35
23-mar-2012 1:14:46 org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Desplieque del descriptor de configuración Academia.xml
23-mar-2012 1:14:46 org.apache.catalina.startup.HostConfig deployDescriptor

ADVERTENCIA: Se ha especificado un docBase C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ AccesoBDAca dentro del appBase de la máquina y será ignorado
AccesoBDAca es una prueba que hice y que luego borré, no sé porque sigue saiendo aquí

23-mar-2012 1:14:46 org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Desplieque del descriptor de configuración host-manager.xml
23-mar-2012 1:14:46 org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Desplieque del descriptor de configuración manager.xml
23-mar-2012 1:14:46 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Despliegue del directorio docs de la aplicación web
23-mar-2012 1:14:46 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Despliegue del directorio examples de la aplicación web
23-mar-2012 1:14:47 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Despliegue del directorio HolaMundo de la aplicación web
23-mar-2012 1:14:47 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Despliegue del directorio ROOT de la aplicación web

¿Porqué no despliega mi directorio Academia?

23-mar-2012 1:14:47 org.apache.coyote.http11.Http11Protocol start
INFO: Arrancando Coyote HTTP/1.1 en puerto http-8080
23-mar-2012 1:14:47 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
23-mar-2012 1:14:47 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/16 config=null
23-mar-2012 1:14:47 org.apache.catalina.startup.Catalina start
INFO: Server startup in 589 ms

El log de catalina, las mismas dudas que en el anterior:

23-mar-2012 1:14:46 org.apache.catalina.core.AprLifecycleListener init
INFO: La biblioteca nativa de Apache Tomcat basada en ARP que permite un rendimiento óptimo en entornos de desarrollo no ha sido hallada en java.library.path: C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin;C:\Windows\Sun\Java\bin;C:\Windows\system3 2;C:\Windows;C:\Windows\system32;C:\Windows;C:\Win dows\System32\Wbem;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;c:\php;C:\Program Files\QuickTime\QTSystem\;C:\Windows\System32\Wind owsPowerShell\v1.0\;C:\Program Files\GNU\GnuPG;C:\Program Files\Java\jdk1.6.0_27\bin;C:\Program Files\Intel\WiFi\bin\;.
23-mar-2012 1:14:46 org.apache.coyote.http11.Http11Protocol init
INFO: Inicializando Coyote HTTP/1.1 en puerto http-8080
23-mar-2012 1:14:46 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 457 ms
23-mar-2012 1:14:46 org.apache.catalina.core.StandardService start
INFO: Arrancando servicio Catalina
23-mar-2012 1:14:46 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.35
23-mar-2012 1:14:46 org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Desplieque del descriptor de configuración Academia.xml

23-mar-2012 1:14:46 org.apache.catalina.startup.HostConfig deployDescriptor
ADVERTENCIA: Se ha especificado un docBase C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ AccesoBDAca dentro del appBase de la máquina y será ignorado


23-mar-2012 1:14:46 org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Desplieque del descriptor de configuración host-manager.xml
23-mar-2012 1:14:46 org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Desplieque del descriptor de configuración manager.xml
23-mar-2012 1:14:46 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Despliegue del directorio docs de la aplicación web
23-mar-2012 1:14:46 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Despliegue del directorio examples de la aplicación web
23-mar-2012 1:14:47 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Despliegue del directorio HolaMundo de la aplicación web
23-mar-2012 1:14:47 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Despliegue del directorio ROOT de la aplicación web
23-mar-2012 1:14:47 org.apache.coyote.http11.Http11Protocol start

¿Porqué no despliega mi directorio Academia?

INFO: Arrancando Coyote HTTP/1.1 en puerto http-8080
23-mar-2012 1:14:47 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
23-mar-2012 1:14:47 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/16 config=null
23-mar-2012 1:14:47 org.apache.catalina.startup.Catalina start
INFO: Server startup in 589 ms

Por último el common-daemons parece correcto:

[2012-03-23 01:14:45] [info] Commons Daemon procrun (1.0.7.0 32-bit) started
[2012-03-23 01:14:45] [info] Running 'Tomcat6' Service...
[2012-03-23 01:14:45] [info] Starting service...
[2012-03-23 01:14:47] [info] Service started in 1107 ms.

Disculpa la longitud pero no sé donde puede estar el problema y por eso opté por mandarlos completos.

Agradecido por tu interés, saludos ¡
  #11 (permalink)  
Antiguo 24/03/2012, 01:31
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: No consigo empezar (Conexión tomcat-mysql)

Revisa a ver qué hay en el directorio webapps. Y mira también a ver si hay un poco de lío, parece que hay un ...\webapps\AccesoBD y en tu post inicial pones una url como academia/index.html, pero en el xml pones un <url-pattern>/AccesoBD</url-pattern>

Por cierto, ¿ese html es un lapsus?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #12 (permalink)  
Antiguo 24/03/2012, 19:24
 
Fecha de Ingreso: marzo-2012
Ubicación: Galicia
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: No consigo empezar (Conexión tomcat-mysql)

En web-apps tengo: Academia, docs, examples, HolaMundo, host-manager, manager y ROOT.

AccesoBD lo tengo en webapps/Academia/WEB-INF/classes

Con la url localhost:8080/Academia/index.html compruebo que el Tomcat muestra la página índice de la web que quiero hacer.

La url-pattern que tengo en web.xml, si es <url-pattern>/AccesoBD</url-pattern>, ¿no está bien?

"Por cierto, ¿ese html es un lapsus?.". No entiendo a que te refieres, disculpa pero me temo que soy muy novato.

Un detalle que me estoy preguntando si puede dar problemas:

- Instalé el xampp y en el panel de control muestra que el apache y el mysql están corriendo, al darle a start en el svc tomcat se pone en running pero al cabo de unos segundos desaparece ese "running" y no funciona el tomcat, por eso

- Instalé tomcat por separado del xampp

- Resumiendo tengo corriendo el mysql de xampp y el tomcat por separado

No sé si puede venir de ahí él problema.

Gracias de nuevo por el empeño que estás poniendo en ayudarme.
  #13 (permalink)  
Antiguo 25/03/2012, 00:17
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: No consigo empezar (Conexión tomcat-mysql)

Hola:

index.html no es un index.jsp, por lo que nunca ejecutará nada de lo que tengas en jsp, ni servlet ni nada, sólo mostrará el html.

Si AccesoBD es un servlet (parece que sí), la forma de llamarlo es

http://localhost:8080/Academia/AcessoBD

Por eso mi ristra de preguntar anteriores, url-pattern te dice qué añadir a la URL http://localhost:8080/Acadamia para llamar al servlet e index.html no es y por tanto no ejecuta nada de tu código java.

Si la URL a la que estás accediendo tiene :8080, estás accediendo directamente al Tomcat y es principio da igual que tengas o no xampp, ya que no lo estás usando.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #14 (permalink)  
Antiguo 25/03/2012, 04:45
 
Fecha de Ingreso: marzo-2012
Ubicación: Galicia
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: No consigo empezar (Conexión tomcat-mysql)

Si, si, ya.

Con localhost:8080/Academia/index.html abro el índex de la web que pretendo crear, y desde esa página tengo un formulario que es el que manda ejecutar el servlet... y no funciona.

Por supuesto también ejecuto el servlet directamente con localhost:8080/Academia/AccesoBD y ... nada (los logs que copié son después de ejecutar esto).

El explorador se queda buscando eternamente. Modifiqué el init así con los system.out:

public void init(ServletConfig conf)
throws ServletException
{
super.init(conf);
System.out.println("Se ejecuta init");
Context ctx;
try{
ctx = new InitialContext();
fuenteDatos = (DataSource)
ctx.lookup("java:comp/env/jdbc/bdAcademia");
if (fuenteDatos==null)
System.out.println("Fuente de datos es null");
}
catch (NamingException e){
System.out.println("Excepcion");
e.printStackTrace();
}
}

No sé ya que libro mirar ni por donde buscar... por eso valoro muchísimo tu ayuda... a ver si se te ocurre algo más.
  #15 (permalink)  
Antiguo 25/03/2012, 05:30
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: No consigo empezar (Conexión tomcat-mysql)

no me dices si tus System.out salen en el log....

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #16 (permalink)  
Antiguo 25/03/2012, 16:00
 
Fecha de Ingreso: marzo-2012
Ubicación: Galicia
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: No consigo empezar (Conexión tomcat-mysql)

no, no salen.

Los logs son los que te puse más arriba (completos).
  #17 (permalink)  
Antiguo 28/03/2012, 07:11
 
Fecha de Ingreso: marzo-2012
Ubicación: Galicia
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: No consigo empezar (Conexión tomcat-mysql)

chuidiang, te rindes?, no se te ocurre ninguna solución?

A nadie se le ocurre que puede pasar?

Pasamos a las medidas desesperadas cuando no se sabe donde está el problema?. Se me ocurre lo típico: desinstalar y volver a instalar, probar con otro ordenador, hacerlo con los dedos cruzados y tocando madera, poner una vela a San Antonio... ¿cual me sugerís?

Socorrooooooo ¡¡¡¡
  #18 (permalink)  
Antiguo 28/03/2012, 13:40
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: No consigo empezar (Conexión tomcat-mysql)

Es complicado.

Primero decías que daba error al acceder a base de datos. Luego al meter el JOptionPane hubo un cambio en el comportamiento... se quedaba colgado, cosa normal con un JOptionPane. Eso quiere decir que tu aplicación se desplegaba y se llamaba al init().

Ahora dices que ni siquiera se despliega en el log ni se llama al System.out.

¿Qué más cosas has cambiado entre medias? ¿Seguro que tienes un Aplication.war en el directorio webapps de tomcat? Si hay un directorio Aplication ahí dentro, bórralo y pon un Aplication.war nuevo reciente. Luego arranca tomcat.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #19 (permalink)  
Antiguo 02/04/2012, 17:53
 
Fecha de Ingreso: marzo-2012
Ubicación: Galicia
Mensajes: 27
Antigüedad: 12 años, 1 mes
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.
  #20 (permalink)  
Antiguo 04/04/2012, 11:54
 
Fecha de Ingreso: marzo-2012
Ubicación: Galicia
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: No consigo empezar (Conexión tomcat-mysql)

¿alguna idea? por favor
  #21 (permalink)  
Antiguo 07/04/2012, 17:04
 
Fecha de Ingreso: marzo-2012
Ubicación: Galicia
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: No consigo empezar (Conexión tomcat-mysql)

Bueno, después de romperme mucho la cabeza finalmente he conseguido conectar.
El problema estaba en el context.xml y el web.xml. Estaba siguiendo un manual que ponía este ejemplo y ofrecía ese web.xml y context.xml que, solamente, tenían 5 errores.
Después de enterarme de que era cada cosa en ambos archivos llegué a la conclusión de que en el manual estaban mal, los corregí y por fin ¡ Conexión realizada !.

Gracias a los que me han leído y especialmente a chuidiang por intentar ayudarme.
  #22 (permalink)  
Antiguo 14/05/2012, 15:12
 
Fecha de Ingreso: mayo-2012
Ubicación: pachuca
Mensajes: 1
Antigüedad: 12 años
Puntos: 0
Respuesta: No consigo empezar (Conexión tomcat-mysql)

Cita:
Iniciado por Sirius381 Ver Mensaje
Perdon, no me lei el post completo, solo una duda, todo se encuentra en el mismo equipo? o tienes el tomcat en un server con la base de datos (MySQL) y estas intentando acceder desde otro equipo? (Java) por defecto MySQL no permite conexiones remotas, tienes que editar el archivo de configuracion y permitir las conexiones remotas, es muy facil, si ese es el caso avisame y te ayudo, si no es el caso, revisa tu conexion (el objeto que creas en Java) Statement, e driver etc, cualquier cosa aqui andamos.

Saludos!
hola!!! keria saber si puedes ayudarme ya que quiero configurar tomcat para una sesion remota, quiero entrar desde otra PC al tomcat que esta en otro me urge mucho!!! muchas gracias

Etiquetas: empezar, jar, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:41.