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

java.lang.NullPointerException al desplegar aplicación con jdbc en Tomcat

Estas en el tema de java.lang.NullPointerException al desplegar aplicación con jdbc en Tomcat en el foro de Java en Foros del Web. Hola! necesito vuestra ayuda a ver si alguien me puede ayudar. Estoy con una aplicación web que consulta una base de datos con el jdbc. ...
  #1 (permalink)  
Antiguo 25/01/2016, 10:14
 
Fecha de Ingreso: enero-2016
Mensajes: 6
Antigüedad: 8 años, 9 meses
Puntos: 0
java.lang.NullPointerException al desplegar aplicación con jdbc en Tomcat

Hola!
necesito vuestra ayuda a ver si alguien me puede ayudar.

Estoy con una aplicación web que consulta una base de datos con el jdbc.
Al ejecutarla en localhost con eclipse funciona perfectamente pero cuando hago el despliegue en el servidor me da un nullpointer cuando va a consultar el ResultSet obtenido al ejecutar la consulta a la base de datos, lo que me lleva a pensar que no está cogiendo bien el driver del jdbc.

¿Por qué puede ser? tengo el jar del jdbc en el directorio lib del WEB-INF de la aplicación.



Muchas gracias, a ver si me podéis echar una mano.
  #2 (permalink)  
Antiguo 25/01/2016, 10:16
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: java.lang.NullPointerException al desplegar aplicación con jdbc en Tomcat

Hola:

"cuando va a consultar el ResultSet ". Esto hace pensar que la conexión se hace bien, ya que no puees obtener un ResultSet sin una conexión.
Lo ideal sería que pusieras las líneas en que se produce la excepción indicando exactamente en cual de ellas. Si ves la traza donde está el NullPointer, suele poner también tus clases java y el número de línea de las mismas.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 25/01/2016, 10:29
 
Fecha de Ingreso: enero-2016
Mensajes: 6
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: java.lang.NullPointerException al desplegar aplicación con jdbc en Tomcat

vaya! esto si que es rapidez!! Muchas gracias por el interes.

Si claro, perdona que no puse ninguna linea de código.

El trozo de código donde da el error es el siguiente (el error exactamente es en la linea del while):
Código:
public String getNombreUsuario(int userid){
		String res="";
		ResultSet rs;
		String query="select firstname, lastname from mdl_user where id="+userid;
		try {
			rs=databaseSelect.ExecuteQuery(query);
			while (rs.next()){
				res=rs.getString(1)+" "+rs.getString(2);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return res;
	}
que está en una clase aparte que es llamada en el servlet:

Código:
...
String nombreStr=man.getNombreUsuario(userid);
...
out.println(nombreStr);
...
El error que muestra Tomcat es el siguiente:
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
Manager.getNombreUsuario(Manager.java:394)
Procesado.doPost(Procesado.java:51)
javax.servlet.http.HttpServlet.service(HttpServlet .java:648)
javax.servlet.http.HttpServlet.service(HttpServlet .java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilt er(WsFilter.java:52)
nota La traza completa de la causa de este error se encuentra en los archivos de diario de Apache Tomcat/8.0.30.
  #4 (permalink)  
Antiguo 25/01/2016, 12:13
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: java.lang.NullPointerException al desplegar aplicación con jdbc en Tomcat

Hola:

Ahora solo falta saber cual es la línea 394 de la clase Manager.java ( Manager.java:394 )

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 25/01/2016, 12:19
 
Fecha de Ingreso: enero-2016
Mensajes: 6
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: java.lang.NullPointerException al desplegar aplicación con jdbc en Tomcat

La línea 394 de Manager.Java es el
while(rs.next()){


Gracias de nuevo
  #6 (permalink)  
Antiguo 25/01/2016, 12:21
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: java.lang.NullPointerException al desplegar aplicación con jdbc en Tomcat

Hola:

El ResultSet parece ser null.

Esta línea

databaseSelect.ExecuteQuery(query);

llamándose el método ExecuteQuery con mayúscula, posiblemente databaseSelect es una clase tuya y el método ExecuteQuery también. Está devolviendo un ResultSet null. Tendrías que revisasr ese código por dentro a ver por qué devuelve un ResultSet null.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #7 (permalink)  
Antiguo 25/01/2016, 12:24
 
Fecha de Ingreso: enero-2016
Mensajes: 6
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: java.lang.NullPointerException al desplegar aplicación con jdbc en Tomcat

Ok. Lo miraré mañana ya que es un proyecto del trabajo.
Pero lo que me extraña es que esa misma clase en local con el eclipse si funciona perfectamente.

Gracias! Mañana con lo que saque escribo de nuevo.
  #8 (permalink)  
Antiguo 26/01/2016, 03:31
 
Fecha de Ingreso: enero-2016
Mensajes: 6
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: java.lang.NullPointerException al desplegar aplicación con jdbc en Tomcat

Hola de nuevo!

el databaseSelect.ExecuteQuery(query); lo único que hace es ejecutar una consulta de la base de datos
Código Java:
Ver original
  1. public ResultSet ExecuteQuery(String query) throws SQLException {
  2.         if(statement != null){
  3.             return statement.executeQuery (query);
  4.         }else{
  5.             return null;
  6.         }
  7.     }

y el statement es el resultado de un createStatement. Pongo también el método donde se obtiene:

Código Java:
Ver original
  1. public String Open(String host, int port, String databaseName, String username, String password) {
  2.         String urlHost = String.format("jdbc:postgresql://%s:%s/%s", host, port, databaseName);
  3.         try {
  4.             connection = DriverManager.getConnection(urlHost, username, password);
  5.             statement = connection.createStatement();
  6.             enabled = true;
  7.             return "";
  8.         }catch (SQLException ex) {
  9.             return ex.getMessage();
  10.         }
  11.     }

La verdad es que ando perdido y no se por donde atacar. Estos métodos se han utilizado en una aplicación Java normal y han funcionado perfectamente. Ahora lo que queremos es portarlo a una aplicación web.
  #9 (permalink)  
Antiguo 26/01/2016, 23:36
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: java.lang.NullPointerException al desplegar aplicación con jdbc en Tomcat

Hola:

Pues como ResultSet parece ser null, es que statement es null. Y statement es null si salta la excepción en el trozo de código de la conexión. ¿Qué haces con el ex.getMessage()? ¿Lo escribes en algún sitio? ¿qué pone?

En cualquier caso, tiene toda la pinta que falla la conexión con la base de datos. Puede ser cualquier cosa, usuario/password no valido, que no esté levantado el servidor de base de datos, que te hayas equivocado en el nombre de host, .... y el qué de todas esas posibles cosas te lo diría claramente (o al menos daría una pista) la excepción.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #10 (permalink)  
Antiguo 27/01/2016, 08:45
 
Fecha de Ingreso: enero-2016
Mensajes: 6
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: java.lang.NullPointerException al desplegar aplicación con jdbc en Tomcat

Bueno pues finalmente da un No suitable driver found for jdbc:postgresql
pero el jar con el driver lo tengo en WEB-INF/lib

necesito hacer algo mas para que funcione el jdbc?
  #11 (permalink)  
Antiguo 27/01/2016, 11:29
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: java.lang.NullPointerException al desplegar aplicación con jdbc en Tomcat

Mira a ver si este es tu caso.

http://stackoverflow.com/questions/1...-nexentasearch

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: desplegar, eclipse, jar, jdbc, tomcat
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 12:18.