简体   繁体   中英

HOW TO SOLVE Servlet execution threw an exception?

I Have been doing a project for uploading files using jsp, servlets and tomcat.

But, i have been getting the following error:

type Exception report

message Servlet execution threw an exception

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Servlet execution threw an exception
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

java.lang.NoClassDefFoundError: database/Db_Connection
    controller.UploadFileController.doPost(UploadFileController.java:52)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/8.0.24 logs.

My servlet code is:

        package controller;

        import java.io.IOException;
        import java.io.InputStream;
        import java.sql.Connection;
        import java.sql.PreparedStatement;
        import javax.servlet.ServletException;
        import javax.servlet.annotation.MultipartConfig;
        import javax.servlet.annotation.WebServlet;
        import javax.servlet.http.HttpServlet;
        import javax.servlet.http.HttpServletRequest;
        import javax.servlet.http.HttpServletResponse;
        import javax.servlet.http.Part;
        import database.Db_Connection;
        import java.io.PrintWriter;
        import java.util.Random;
        import javax.servlet.RequestDispatcher;

        @WebServlet("/uploadServlet")
        @MultipartConfig(maxFileSize = 16177215)

        public class UploadFileController extends HttpServlet 
      {
       @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException 
    {
                response.setContentType("text/html;charset=UTF-8");
                PrintWriter out = response.getWriter();

                InputStream inputStream = null;

                Random rand = new Random();
                int  n = rand.nextInt(9999) + 1;
                String idTemp=(String.valueOf(n));


                String title=(request.getParameter("title"));
                Part filePart = request.getPart("file_uploaded");

                if (filePart != null) 
                {
                    System.out.println(filePart.getName());
                    System.out.println(filePart.getSize());
                    System.out.println(filePart.getContentType());

                    inputStream = filePart.getInputStream();
                }

                try 
                {
                    Db_Connection dbconn=new Db_Connection();
                    Connection conn= dbconn.Connection();

                    String sql = "INSERT INTO files (id, title, file1) values (?, ?, ?)";
                    PreparedStatement statement = conn.prepareStatement(sql);
                    statement.setString(1, idTemp);
                    statement.setString(2, title);

                    if (inputStream != null) 
                    {
                        statement.setBinaryStream(3, inputStream, (int) filePart.getSize());
                    }

                    int row = statement.executeUpdate();
                    if (row > 0) 
                    {
                        out.println("File uploaded!!!");

                        conn.close();

                        RequestDispatcher rs = request.getRequestDispatcher("upload_form.jsp");
                        rs.include(request, response);
                    }
                    else
                    {
                        out.println("Couldn't upload your file!!!");

                        conn.close();

                        RequestDispatcher rs = request.getRequestDispatcher("upload_form.jsp");
                        rs.include(request, response);
                    }    

                }catch(Exception e){e.printStackTrace();}     
    }   
}

We have created a database in oracle 10g using the following

   create table files(id number(10), title varchar(20),file1 varchar(20));

The files we are trying to upload is of size 5 bytes.I have done the database connection also. Could you please help me resolve this error.

在类路径中包含包含database/Db_Connection jar 文件

"Servlet execution threw an exception" is a generic error message provided whenever there is an exception, In such cases we need to look on the root cause for identifying the exception. In your case DB_Connection class is missing in the classpath.

java.lang.NoClassDefFoundError: database/Db_Connection
controller.UploadFileController.doPost(UploadFileController.java:52)
javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

Your are using oracle database, have you included jar for oracle connectivity. Try adding that to our class path. hopefully this will solve the issue.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM