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

Servlet.service()

Estas en el tema de Servlet.service() en el foro de Java en Foros del Web. Hola , hice una aplicacion en java, con servlets, la pruebo en casa con tomcat 5.5.2 y anda bien, con una conexion mysql cuando la ...
  #1 (permalink)  
Antiguo 08/11/2007, 19:57
 
Fecha de Ingreso: noviembre-2007
Mensajes: 2
Antigüedad: 16 años, 5 meses
Puntos: 0
Servlet.service()

Hola , hice una aplicacion en java, con servlets, la pruebo en casa con tomcat 5.5.2 y anda bien, con una conexion mysql
cuando la paso al hosting, tienen tomcat 5.5.4, con lo cual no deberia haber problema, y parece que al querer conectarse con la base sale este error,
GRAVE: Servlet.service() para servlet BienServlet lanzó excepción
java.lang.NullPointerException
at src.Conexion.armaListaPorDesc(Unknown Source)
at src.modelo.BienServlet.procesarPeticion(Unknown Source)
at src.modelo.BienServlet.doGet(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:802)
at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardContextValve.invo ke(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.invok e(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:825)
at org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.processConnection(Http11Protocol.jav a:731)
at org.apache.tomcat.util.net.PoolTcpEndpoint.process Socket(PoolTcpEndpoint.java:526)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThr ead.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlR unnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
El tema es que nose como solucionarlo, la conexion a la base esta ok, desde alli probaron un .php con el mismo string de conexion q uso yo, pero nose cual sera el problema, mas abajo pego el codigo a ver si aclara un poco cual es el problema

public static final String DATASOURCE = "jdbc:mysql://localhost:3306/mayrror";
private Connection conn = null;

public Conexion() throws SQLException, ClassNotFoundException {

try {
//contexto sesion
Class.forName("com.mysql.jdbc.Driver").newInstance ();
conn = DriverManager.getConnection(DATASOURCE, "mayrror", "ma546ns");

} catch (Exception x) {

}

}

private void close(Connection conn,
PreparedStatement ps) throws SQLException {
if (ps != null)
ps.close();
if (conn != null)
conn.close();
}

EN EL SERVLET:

public class BienServlet extends HttpServlet {

private Prenda prenda;
private List prendas ;
private Conexion con = null;
protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException
{
super.init();
this.procesarPeticion(arg0,arg1);
}

protected void doPost(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException
{
super.init();
this.procesarPeticion(arg0,arg1);
}

protected void procesarPeticion(HttpServletRequest peticion, HttpServletResponse respuesta) throws ServletException, IOException
{


String accion = peticion.getParameter("accion");
String nroarticulo = peticion.getParameter("radio");
String valida = peticion.getParameter("valida");
String nroartbuscar = peticion.getParameter("nroarticulo");
String descabuscar = peticion.getParameter("descripcion");

if(valida != null) {

if(nroartbuscar != "") {


try {
con = new Conexion();
prendas = con.armaListaPorArt(nroartbuscar);
if(prendas!=null) {
HttpSession s = peticion.getSession(false);
s.setAttribute("prendas",prendas);
respuesta.sendRedirect("bienvenida.jsp");

return;
}
else {
respuesta.sendRedirect("bienvenida");
System.out.println("El Nro de articulo no existe");
}

}

catch(SQLException e) {

}
catch(ClassNotFoundException cne) {

}
} else {
try {
con = new Conexion();
prendas = con.armaListaPorDesc(descabuscar);
if(prendas!=null) {
HttpSession s = peticion.getSession(false);
s.setAttribute("prendas",prendas);
respuesta.sendRedirect("bienvenida.jsp");

return;
}
else {
respuesta.sendRedirect("bienvenida.jsp");
System.out.println("El Nro de articulo no existe");
}

}

catch(SQLException e) {

}
catch(ClassNotFoundException cne) {

}

}
}


if(accion.equalsIgnoreCase("Alta")) {
respuesta.sendRedirect("alta.jsp");

return;
}
if(accion.equalsIgnoreCase("Baja")) {

//busco el registro y lo doy de baja luego refresco la consulta sin ese registro

try {
con = new Conexion();
prenda = con.buscaPrenda(nroarticulo);
if(prenda!=null) {

//saco la prenda de la lista para mostrar la misma
//lista pero sin esa prenda pero no anda..
this.removePrendas(prenda);
con.delete(nroarticulo);

HttpSession s = peticion.getSession(false);
s.setAttribute("prendas",prendas);
respuesta.sendRedirect("bienvenida.jsp");

return;
}
else {
respuesta.sendRedirect("bienvenida.jsp");
System.out.println("El Nro de articulo no existe");
}



}
catch(SQLException e) {

}
catch(ClassNotFoundException cne) {

}
}
if(accion.equalsIgnoreCase("Modificacion")) {

try {
con = new Conexion();
prenda = con.buscaPrenda(nroarticulo);
if(prenda!=null) {

HttpSession s = peticion.getSession();
s.setAttribute("prenda",prenda);
respuesta.sendRedirect("modificacion.jsp");

return;
}
else {
respuesta.sendRedirect("bienvenida.jsp");
System.out.println("El Nro de articulo no existe");
}



}
catch(SQLException e) {

}
catch(ClassNotFoundException cne) {

}
}

}


public Prenda getPrenda() {
return prenda;
}

public void setPrenda(Prenda prenda) {
this.prenda = prenda;
}



public void removePrendas(Prenda prenda) {

this.prendas.remove(prenda);
}
}

espero alguien me pueda ayudar

muchas gracias

joaquin
  #2 (permalink)  
Antiguo 09/11/2007, 03:25
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Servlet.service()

Hola jcabal. Bienvenido al foro.

Para hacer preguntas es preferible utilizar el foro que mejor se adapte a tu duda, así podrán ayudarte más usuarios.

Muevo tu mensaje al foro de Java desde Bienvenida a Foros del Web.

Saludos,
  #3 (permalink)  
Antiguo 09/11/2007, 04:43
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Servlet.service()

Lo mejor es compilar el servlet con el flag de debug a true para que cuando lo pongas en el servidor, te diga cual es la linea donde da el error.

De todas formas, el error ya te dice que tienes un error de tipo "Null Pointer" en el metodo armaListaPorDesc de la clase src.Conexion. Eso ya te deberia dar alguna pista.

Mucho mas no se puede decir ya que no esta el codigo de ese metodo.

S!
  #4 (permalink)  
Antiguo 10/11/2007, 10:58
 
Fecha de Ingreso: noviembre-2007
Mensajes: 2
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Servlet.service()

Hola GreenEyed, gracias por la resp, ahhora como hago para póner el flag de debug a true?
Despues por otro lado paso el cod. del metodo, no lo puse antes porque en realidad cuando llamo a cuanlquier metodo que hace un new Conexion de la base de datos dsa este error..

Gracias

Joaquin

public List armaListaPorDesc(String descripcion) {
Prenda prenda;
String art = descripcion+"%";
PreparedStatement ps = null;
try {
List prendas = new ArrayList();

ps = conn.prepareStatement("select nroarticulo,descripcion,nombrearchivo from prendas where descripcion like?");
ps.setString(1, art);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
prenda = new Prenda();

prenda.setNroArticulo(rs.getString("nroarticulo")) ;
prenda.setDescripcion(rs.getString("descripcion")) ;
prenda.setNombreArchivo(rs.getString("nombrearchiv o"));

prendas.add(prenda);
}

return prendas;
}

catch (SQLException x) {
return null;
} finally {
try {
close(conn, ps);
} catch (SQLException x) {
}
}


}
  #5 (permalink)  
Antiguo 11/11/2007, 09:41
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Servlet.service()

Para poner el flag de debug, mira la documentacion del metodo que uses para compilar, ya que depende de si usas javac directamente, el ant, un IDE...

En cuanto al error... así por encima da toda la impresion de que el objeto "conn" es null cuando se ejecuta el metodo.

S!
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 08:23.