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)
Bài liên quan
Sau khi debug bằng mắt thì mình nghĩ lỗi ở đây
connectDB nó đang null.
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
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 ạ.
em đã fixbug ạ. Do khai báo DBconnection connectDB nhưng chưa gọi thực thể nên bị dính null