01/10/2018, 11:38

Ai giúp em lỗi này với

package com.xomtro.DemoWebService.config;

import java.sql.Connection;
import java.sql.DriverManager;

public class DBconnection {
	public Connection getConnect()
	{
		Connection con= null;
		String url="jdbc:mysql://localhost:3306/dhcnhn_pm?user=root&password=&useUnicode=yes&characterEncoding=UTF-8";

		try{
			Class.forName("com.mysql.jdbc.Driver");
			con = DriverManager.getConnection(url);
		}catch(Exception ex)
		{
			ex.printStackTrace();
		}
		return con;
	}


package com.xomtro.DemoWebService.Dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.xomtro.DemoWebService.Model.UserModel;
import com.xomtro.DemoWebService.config.DBconnection;
import com.xomtro.DemoWebService.service.UserService;

public class UserDao implements UserService {
	private Connection connection;
	private DBconnection connectDB;
	private ResultSet resultSet;
	private PreparedStatement preparedStatement;

	public UserDao() {
		// TODO Auto-generated constructor stub
	}

	@Override
	public void insert_user(UserModel user) {
		connection = connectDB.getConnect();
		String sql = "INSERT INTO `users`(`username`, `password`, `tengv`, `email`, `phone`,`id_role`,`id_khoa`) VALUES (?,?,?,?,?,?,?)";
		try {
			preparedStatement = connection.prepareStatement(sql);
			preparedStatement.setString(1, user.getUsername());
			preparedStatement.setString(2, user.getPassword());
			preparedStatement.setString(3, user.getTengv());
			preparedStatement.setString(4, user.getEmail());
			preparedStatement.setString(5, user.getPhone());
			preparedStatement.setInt(6, user.getId_role());
			preparedStatement.setInt(7, user.getId_khoa());
			preparedStatement.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				connection.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	
}

package com.xomtro.DemoWebService.Controller;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.xomtro.DemoWebService.Dao.UserDao;
import com.xomtro.DemoWebService.Model.UserModel;
import com.xomtro.DemoWebService.config.Md5Lib;

public class RegController extends HttpServlet {
	private static final long serialVersionUID = 1L;
	public RegController() {
		super();
	}

	protected void doGet(HttpServletRequest rq, HttpServletResponse rs) throws ServletException, IOException {
		RequestDispatcher dispatcher = rq.getRequestDispatcher("/page/register.jsp");
		dispatcher.forward(rq, rs);
	}

	protected void doPost(HttpServletRequest rq, HttpServletResponse rs) throws ServletException, IOException {
		rq.setCharacterEncoding("UTF-8");
		UserModel user = new UserModel();
		Md5Lib md5=new Md5Lib();
		String username = rq.getParameter("username");
		String password = md5.md5(rq.getParameter("password"));
		String tengv = rq.getParameter("tengv");
		String email = rq.getParameter("email");
		String phone = rq.getParameter("phone");
		int id_role = 1;
		int id_khoa = 4;
		
		UserDao dao = new UserDao();
		user.setUsername(username);
		user.setPassword(password);
		user.setTengv(tengv);
		user.setEmail(email);
		user.setPhone(phone);
		user.setId_role(id_role);
		user.setId_khoa(id_khoa);
		dao.insert_user(user);
		RequestDispatcher rd = rq.getRequestDispatcher("/page/ok.jsp");
		rd.forward(rq, rs);
		

	}
}

Sep 21, 2017 5:28:46 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:DemoWebService' did not find a matching property.
Sep 21, 2017 5:28:46 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:HauiPM' did not find a matching property.
Sep 21, 2017 5:28:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version:        Apache Tomcat/8.0.46
Sep 21, 2017 5:28:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built:          Aug 10 2017 10:10:31 UTC
Sep 21, 2017 5:28:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number:         8.0.46.0
Sep 21, 2017 5:28:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name:               Windows 10
Sep 21, 2017 5:28:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version:            10.0
Sep 21, 2017 5:28:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture:          x86
Sep 21, 2017 5:28:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home:             C:Program FilesJavajre1.8.0_131
Sep 21, 2017 5:28:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version:           1.8.0_131-b11
Sep 21, 2017 5:28:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor:            Oracle Corporation
Sep 21, 2017 5:28:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE:         E:JAVAWEB.metadata.pluginsorg.eclipse.wst.server.core	mp2
Sep 21, 2017 5:28:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME:         E:apache-tomcat-8.0.46
Sep 21, 2017 5:28:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=E:JAVAWEB.metadata.pluginsorg.eclipse.wst.server.core	mp2
Sep 21, 2017 5:28:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=E:apache-tomcat-8.0.46
Sep 21, 2017 5:28:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=E:JAVAWEB.metadata.pluginsorg.eclipse.wst.server.core	mp2wtpwebapps
Sep 21, 2017 5:28:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=E:apache-tomcat-8.0.46endorsed
Sep 21, 2017 5:28:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1252
Sep 21, 2017 5:28:46 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:Program FilesJavajre1.8.0_131in;C:WINDOWSSunJavain;C:WINDOWSsystem32;C:WINDOWS;C:/Program Files/Java/jre1.8.0_131/bin/client;C:/Program Files/Java/jre1.8.0_131/bin;C:/Program Files/Java/jre1.8.0_131/lib/i386;E:app	uandproduct11.2.0dbhome_1in;C:ProgramDataOracleJavajavapath;C:WINDOWSsystem32;C:WINDOWS;C:WINDOWSSystem32Wbem;C:WINDOWSSystem32WindowsPowerShellv1.0;C:Program FilesGitcmd;C:Users	uandAppDataLocalMicrosoftWindowsApps;E:eclipse;;.
Sep 21, 2017 5:28:47 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
Sep 21, 2017 5:28:47 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Sep 21, 2017 5:28:47 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-nio-8009"]
Sep 21, 2017 5:28:47 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Sep 21, 2017 5:28:47 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1054 ms
Sep 21, 2017 5:28:47 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Sep 21, 2017 5:28:47 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/8.0.46
Sep 21, 2017 5:28:48 PM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Sep 21, 2017 5:28:48 PM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Sep 21, 2017 5:28:48 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
Sep 21, 2017 5:28:48 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8009"]
Sep 21, 2017 5:28:48 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1768 ms
Sep 21, 2017 5:29:28 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [RegController] in context with path [/DemoWebService] threw exception
java.lang.NullPointerException
	at com.xomtro.DemoWebService.Dao.UserDao.insert_user(UserDao.java:24)
	at com.xomtro.DemoWebService.Controller.RegController.doPost(RegController.java:46)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1132)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1539)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Unknown Source)
Uchiha Sasuke viết 13:53 ngày 01/10/2018

connection = connectDB.getConnect();

Sau khi debug bằng mắt thì mình nghĩ lỗi ở đây
connectDB nó đang null.

Đoàn Trọng Hiếu viết 13:51 ngày 01/10/2018

Cái password trong String url là trong code cũng thế hay bác xóa mật khẩu đi để post bài thế :v

Tuân Nguyễn viết 13:50 ngày 01/10/2018

vâng. em test cái hàm getConnect ra một class khác thì không null nhưng khi đưa sang đấy thì lại null ạ.

Tuân Nguyễn viết 13:55 ngày 01/10/2018

em đã fixbug ạ. Do khai báo DBconnection connectDB nhưng chưa gọi thực thể nên bị dính null

Bài liên quan
0