Java - Problema comunicando JSP con clase coneccion postgresql usando servlet

 
Vista:
sin imagen de perfil

Problema comunicando JSP con clase coneccion postgresql usando servlet

Publicado por Adrian (2 intervenciones) el 11/06/2017 14:28:38
Buenas amigos un gusto saludarlos,

Situación: Actualmente estoy tratando de crear una app web en java usando servlet, donde tengo 4 componentes:

1. Clase Servlet: Controlador que mantiene y gestiona la comunicación entre jsp y mis java class.
2. JSP: Es una sencilla interfax que pasa un parametro al servlet y en base a esto ejecuta una decisión de "if" dentro del servlet.
3. Clase Conexión: Esta es la clase que conecta con postgresql, esta clase la he probado sin el uso de servlet y la conexión retorna "Exito", además desde otra clase puedo consultar un valor en mi BD y mostrar un dato de una tabla, por ende la conexión si funciona.
4. Clase consultaBD: Esta clase es la que tiene la lógica dentro de la bd usando la clase conexión.

Problema:
Como les mencionaba la clase conexión a la BD si funciona, sin embargo cuando ejecuto el proyecto y hago mi trabajo en mi jsp, comunico mi servelt y este cuando requiere ir a hacer la conexión a la BD no lo permite. Ya he realizado buenos debug y es acá donde no realiza la conexión correctamente.

Error:
HTTP Status 500 - Internal Server Error

type Exception report

messageInternal Server Error

descriptionThe server encountered an internal error that prevented it from fulfilling this request.

exception

java.lang.NullPointerException
note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 4.1.1 logs.

Clase conexión:
package DAO;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Connection;
import java.sql.Statement;

//import com.sun.mail.iap.ConnectionException;

import java.sql.SQLException;

public class ConectaDB {
private static Connection conexion;

//Metodo que administra la conexion a la BD
public Connection ConectaDB() throws SQLException{
String clave = "XXX";
String controllerDBPostgresql = "jdbc:postgresql://localhost:XX/XX";
try {
Class.forName("org.postgresql.Driver");
conexion = DriverManager.getConnection("jdbc:postgresql://localhost:XX/XX","postgres", clave);
int x = 9;
if(conexion != null){
System.out.println("Conectado con exito");
}
else{
System.out.print("Error conectando la bd");
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conexion;


}

//Metodo para abrir la conexion a la bd
public Connection abrirConexion(){
return conexion;
}

//Metodo para cerrar la conexion a la BD
public void cerrarConexion() {
try {
conexion.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}

Clase para realizar consultas BD
package MetodosConsultas;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import DAO.ConectaDB;

//Clase para calcular segmento de indicadores
public class CalculoIndicadores {
ResultSet resultadoIndicador = null;
//Statement ejecutaIndicador = null;



//Metodo para calcular el GERD
public int calculoGERD(int GERD){
ConectaDB con;
String tipoCambio = null;
int resultadocalculoGERD = 0;
try {
con = new ConectaDB();
Connection conexion1 = con.ConectaDB();
Statement stCalculoGERD = conexion1.createStatement();
String query1 = "Select \"TipoCambioDolar\" from \"TablaTipoCambio\" where \"Anno\" = '2012'";
resultadoIndicador = stCalculoGERD.executeQuery(query1);
if(resultadoIndicador.next()){
tipoCambio = resultadoIndicador.getString(1);
}
GERD = Integer.parseInt(tipoCambio);


} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return GERD;


}

}

Servlet
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int GERD = 0;
response.getWriter().append("Served at: ").append(request.getContextPath());
String variable = request.getParameter("variable");
String PIB= request.getParameter("KPI");
if(Integer.parseInt(PIB) == 1 ){
//CalculoIndicadores calculoGerdServlet = new CalculoIndicadores();
//int a = calculoGerdServlet.calculoGERD();
pruebaPersistenciaServlet a = new pruebaPersistenciaServlet();
int f = a.sumarNumeros();
response.getWriter().print("<p> El valor enviado es: " + f + "</p>");
response.getWriter().print("Hola SazkynEW");
}
else if(Integer.parseInt(PIB)==2){
CalculoIndicadores cal = new CalculoIndicadores();
int suma = cal.calculoGERD(GERD);
int g =9;
System.out.println(suma);
int x = 0;

response.getWriter().print("Hola Sazky" + suma);
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Problema comunicando JSP con clase coneccion postgresql usando servlet

Publicado por Claudio (6 intervenciones) el 12/06/2017 14:26:03
Buenas!

Te está tirando un NullPointerException, deberías debuggear y ver dónde pasa (o seguir el stacktrace, te debería decir la clase y línea donde ocurre).
Sino subí el log de glassfish acá y te ayudamos.

Si la conexión te anda no creo que venga por ahí el problema, los datos de conexión son siempre constantes.
Puede ser que hayas escrito mal algún atributo que recuperás del request? o que la JSP te lo esté mandando null por algo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar