Bonjour à tous,
Alors voilà, je débute en J2EE, mais je pense avoir de bonnes bases en Java. Je traque une erreur depuis plusieurs, qui m'échappe complètement ... je suis certain que ce n'est pas "grand" chose, mais je me permets de venir vers vous pour avoir des avis éclairés.
Voici la stacktrace tout d'abord :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 GRAVE: "Servlet.service()" pour la servlet [com.ebenus.servlets.ProductsServlets] a généré une exception java.lang.NullPointerException at com.ebenus.dao.impl.ProductDAO.getProductList(ProductDAO.java:129) at com.ebenus.servlets.ProductsServlets.doGet(ProductsServlets.java:27) at javax.servlet.http.HttpServlet.service(HttpServlet.java:635) at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748)
La méthode qui semble responsable :
Et éventuellement le servlet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 package com.ebenus.dao.impl; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import com.ebenus.dao.i.IProduct; import com.ebenus.entities.Product; import com.ebenus.singleton.Connexion; public class ProductDAO implements IProduct{ private Connection connect = null; private Statement statement = null; private PreparedStatement preparedStatement = null; private ResultSet resultSet = null; [....] public List<Product> getProductList(){ List<Product> list = new ArrayList<>(); try { statement = Connexion.Conn.createStatement(); // Result set get the result of the SQL query resultSet = statement.executeQuery("SELECT * FROM PRODUIT"); while(resultSet.next()) { list.add(new Product(resultSet.getInt("idProduit"), resultSet.getString("reference"), resultSet.getDouble("prix"), resultSet.getString("nom"), resultSet.getString("description"), resultSet.getInt("stock"),resultSet.getInt("active"),resultSet.getInt("version"))); } System.out.println("Liste des produits récupérée"); } catch (SQLException e) { e.printStackTrace(); } return list; } }
Voilà, n'hésitez pas à me faire d'éventuelles remarques sur mon code, je suis preneur de toute critique constructive.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
37package com.ebenus.servlets; import java.io.IOException; import java.util.List; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.ebenus.dao.impl.ProductDAO; import com.ebenus.entities.Product; @WebServlet("/ProductsServlets") public class ProductsServlets extends HttpServlet { private static final long serialVersionUID = 1L; public ProductsServlets() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ProductDAO pDAO = new ProductDAO(); List<Product> products = pDAO.getProductList(); request.setAttribute("products", products); RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp"); dispatcher.forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
Merci dans tous les cas de m'avoir lu.
Partager