如何解决 JEE 中的 NullPointerException? [英] how to resolve the NullPointerException in JEE?

查看:28
本文介绍了如何解决 JEE 中的 NullPointerException?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是 JEE 的初学者,我正在尝试从我的数据库中获取对象,但我遇到了 nullpointerexception 错误,我试图通过 System 定位 nullpointerexception 的来源(我知道连接作为 null 传递).out.println() 但我失败了,我忘了告诉你我有用于连接的类 singletonconnection,我通过 .getconnection() 在我的函数中调用它,我还在项目构建中添加了一个 jdbc 驱动程序(版本 8.0.18)path(请问这个错误是不是jdbc驱动版本的问题??),,
如果有人可以提供帮助,请提前致谢.

I'm beginner in JEE and i'm trying to fetch object from my db but i has encountered an error of nullpointerexception, i tried to locate the origin of the nullpointerexception(i understood that the connection passed as null) by System.out.println() but i failed, i forgot to tell you that i have class singletonconnection for connection and i call it in my function by .getconnection() also i add a jdbc driver (version 8.0.18) to the project build path(i ask if this error can be due to the jdbc driver version??),,
please if someone can help and thanks in advance.

这是连接到数据库并将对象带到我在行 PreparedStatement ps=connection.prepareStatement("req") 中告诉您的错误的函数

here is the function that connects to the db and brings objects where i have the error that i told you about in line PreparedStatement ps=connection.prepareStatement("req")

System.out.println("connection");
        Connection connection=SingletonConnection.getConnection();

        System.out.println(connection);
        try {



            PreparedStatement ps=connection.prepareStatement("SELECT * FROM PRODUITS WHERE DESIGNATION LIKE ?");
            ps.setString(1, mc);
            ResultSet rs=ps.executeQuery();

这里是错误日志

HTTP Status 500 – Internal Server Error
Type Exception Report

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

java.lang.NullPointerException
    dao.ProduitDaoImpl.produitsParMC(ProduitDaoImpl.java:48)
    web.ControleurServelet.doGet(ControleurServelet.java:49)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Note The full stack trace of the root cause is available in the server logs.

这是我的单例连接

public class SingletonConnection {
    private static Connection connection;
    //le block static charge la classe en mémoire lors de son appel
    static{
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            try {
                connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/db-natal","root","");
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
    public static Connection getConnection() {
        return connection;
    }

这里是服务器日志中的堆栈

here is the stack in the server log

Nov 27, 2019 6:26:37 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [cs] in context with path [/essai_web] threw exception
java.lang.NullPointerException
    at dao.ProduitDaoImpl.produitsParMC(ProduitDaoImpl.java:48)
    at web.ControleurServelet.doGet(ControleurServelet.java:49)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:444)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1137)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:319)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)

这里是第 48 行

public Produit update(Produit p) {

推荐答案

@marouu 我觉得NullPointerException不是Connection引起的,可能是ProduitDaoImpl,你在这个类里加@Service吗

@marouu I think the NullPointerException is not caused by Connection,maybe the ProduitDaoImpl,Do you add @Service in this class

这篇关于如何解决 JEE 中的 NullPointerException?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆