Java - Error patron DAO en servlet

 
Vista:
sin imagen de perfil
Val: 25
Ha disminuido su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Error patron DAO en servlet

Publicado por Rosa (8 intervenciones) el 13/02/2020 15:47:36
Buenas! Tengo el siguiente ejercicio:

Mostrar el listado de almacenes que tienen productos en peligro de rotura de stock (menos de 5 unidades), indicando cuántos de estos productos están en peligro (ejemplo: ALMACEN_8: 5 PRODUCTOS).

Para este ejercicio uso dos tablas de mi base de datos que son:

-Almacenes: *ID
*Nombre
*Ubicacion

-Productos-Almacenes: ID_almacen
ID_Almacen1
ID_Almacen2
Stock

El constructor que voy a utilizar es el siguiente:

1
2
3
4
5
6
public Productos_almacenes(int ID_producto, int ID_almacen1, int Stock, String Nombre) {
    this.ID_producto = ID_producto;
    this.ID_almacen1 = ID_almacen1;
    this.Stock = Stock;
    this.Nombre = Nombre;
}


Creo el patron DAO de la siguiente manera:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
@Override
public List<Productos_almacenes> getAllAlmacenes1BajoStock() throws Exception {
    List<Productos_almacenes>productos_almacenes= new ArrayList();
    Productos_almacenes producto_almacen= null;
    try{
        this.openConnection();
        String sql = "select cons.*, Alm.Nombre as NomAlmacen FROM (select ID_almacen1,count(ID_producto) as Cantidad from `Productos-Almacenes` where Stock < 5 group by ID_almacen1) cons inner join Almacenes Alm on cons.ID_almacen1 = Alm.ID";
        Statement stm = con.createStatement();
        ResultSet rs= stm.executeQuery(sql);
 
        while(rs.next()){
            producto_almacen= new Productos_almacenes(
                    rs.getInt("ID_producto"),
                    rs.getInt("ID_almacen1"),
                     rs.getInt("Stock"),
                    rs.getString("Nombre")
 
            );
            productos_almacenes.add(producto_almacen);
        }
        this.closeConnection();
 
    } catch (Exception e) {
        e.printStackTrace();
        throw new Exception ("Error al recuperar la lista de almacenes, llame al CPD");
 
    }
    return productos_almacenes;
 
}

Y posteriormente el servlet

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    try{
    Productos_almacenesManager pam= new Productos_almacenesManager();
    List<Productos_almacenes>productos_almacenes=pam.getAllAlmacenes1BajoStock();
    request.setAttribute("productos_almacenes", productos_almacenes);
    hacerForward("/listadoStock.jsp", request, response);
 
 
    }catch(Exception e){
   hacerForward("/error.jsp", request, response);
    }
}
private void hacerForward(String target, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
    RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(target);
    dispatcher.forward(request, response);
}

Creo el JSP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<%@page import="java.util.ArrayList"%>
<%@page import="tk.juanzorba.gestion.model.Productos_almacenes"%>
<%@page import="java.util.List"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%
    List<Productos_almacenes> productos_almacenes = (ArrayList<Productos_almacenes>) request.getAttribute("productos_almacenes");
%>
 
 
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Gestión almacenes</title>
    </head>
    <body>
        <h1>Productos en almacen</h1>
        <table border="2">
 
            <thread>
                <tr>
 
                    <th>ID_producto</th>
                    <th>ID_almacen1</th>
                    <th>Nombre</th>
 
 
                </tr>
            </thread>
            <body>
                <% for (Productos_almacenes pam : productos_almacenes) {%>
            <tr>
 
                <td><%=pam.getID_producto() %></td>
               <td><%=pam.getID_almacen1() %></td>
 
               <td><%=pam.getNombre()%></td>
 
 
 
            </tr>
 
            <% }%>
 
 
 
                </body>
</table>
 
 
            <p><button><a href="index.html"</a>Volver al index</button></p>
    </body>
 
</html>

Y al ejecutarlo el servlet, me redirecciona al error.jsp del catch. Alguien podria decirme que tengo mal? gracias mil
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