Servlet-Klasse nicht gefunden Ausnahme

Ich versuche zu schreiben ein sehr einfaches servlet, und einen HTML-Formular-Aktion verwendet das servlet.

Dies ist mein HTML-Formular:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Upload Video</title>
</head>
<body>

<%
    Object userSession = session.getAttribute("email");

if(userSession == null)
{
    out.println("Welcome to the MyTube, you are not logged in. <br /><br >");
    out.println("Please click the following to login: <a href=\"login.jsp\">here</a>");
    out.println("Or Click this to register: <a href=\"register.jsp\">here</a>");
}
else
{
    out.println("<form action=\"servletClass\" method=\"post\" enctype=\"multipart/form-data\">");
    out.println("<input type=\"file\" name=\"file\" />");
    out.println("<input type=\"submit\" />");
    out.println("</form>");
}

%>

</body>
</html>

Dies ist mein servlet-Klasse:

public class uploadServlet extends HttpServlet
{
    String awsAccessKey = "WHOOOPS";
    String awsSecretKey = "WHOOOPS/YWPkmKfe";
    AWSCredentials awsCredentials = new AWSCredentials(awsAccessKey, awsSecretKey);

    protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException 
    {
        boolean isMulti = ServletFileUpload.isMultipartContent(request);
        if (isMulti) 
        {
            ServletFileUpload upload = new ServletFileUpload();

            try 
            {
                FileItemIterator iter = upload.getItemIterator(request);
                while (iter.hasNext()) 
                {
                    FileItemStream item = iter.next();
                    InputStream inputStream = item.openStream();
                    if (item.isFormField()) 
                    {

                    } 
                    else
                    {
                        String fileName = item.getName();
                        if (fileName != null && fileName.length() > 0) 
                        {
                            S3Service s3Service = new RestS3Service(awsCredentials);

                            S3Object fileObject = new S3Object();
                            fileObject.setDataInputStream(inputStream);
                            fileObject.setContentLength(Integer.parseInt(request.getHeader("Content-Length")));
                            s3Service.putObject("vidvidbucket", fileObject);

                            //read stream of file uploaded

                            //store as a temporary file

                            //upload the file to s3
                        }
                    }
                }
            } 
            catch (Exception e) 
            {

            }
        }

        response.sendRedirect("location of the result page");
    }
}

Dies ist mein web.xml Datei:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>MyTubeServer</display-name>

  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

  <servlet>
    <servlet-name>servletClass</servlet-name>
    <servlet-class>uploadServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>servletClass</servlet-name>
    <url-pattern>/servletClass</url-pattern>
  </servlet-mapping>

</web-app>

Dies ist das eclipse-Einstellungen:

Servlet-Klasse nicht gefunden Ausnahme

Schaute ich an anderen stellen, dass Sie sollte auch die java-Datei in Ihrem WEB-INF-Ordner. Aber ich bekomme immer classNotFoundException.

EDIT: Der stacktrace zeigt an, dass das uploadServlet nicht gefunden, also bin ich verwirrt.

EDIT 2: Nachdem Sie die Einstellung XML-Datei der servlet-Klasse servletClass.uploadServlet statt der servlet-Klasse, aber jetzt bekomme ich die angeforderte Quelle, (X/Lage%Des%Der%File%Ist%Nicht%Gefunden), ohne Ausnahmen

Servlet-Klasse nicht gefunden Ausnahme

  • Es gibt keine Notwendigkeit für die Einbeziehung des java-source-Datei im WEB-INF-Ordner, wenn es das ist was du meinst.
  • Dieses Problem tritt normalerweise, wenn das servlet ist nicht immer die class-Datei, versuchen Sie es erneut schreiben Sie den vollständigen Pfad der uploadServlet.
  • Die ClassNotFoundException wird Ihnen sagen, welche Klasse es nicht zu finden. Erfahren Sie, wie zu Lesen und zu verstehen Ausnahme-trace.
  • Bitte Bearbeiten Sie das Wort 'Servler` zu 'Servlet` in der Betreff-Zeile . Danke .
  • Vielen Dank für euer Hilfe! @Nilsh, schaute ich mir ein paar andere posts, und was fehlte, war die java-Quellcode-Datei wird im WEB-INF-Ordner. Ich habe versucht, die Lösung, aber es funktioniert nicht.
  • meinst du im servlet-mapping, das sollte ich hinzufügen /src/servletClass/uploadServlet?
  • der server beschwert sich das upload-servlet nicht gefunden wird, das ist seltsam
  • Kannst du screen posten für den Fehler ?
  • ja...
  • Was versuchen Sie zu schlagen in den server ?
  • Was ist response.sendRedirect("location of the result page"); in Ihrem servlet-code ?
  • Uh oh.... Ich glaube, ich habe vergessen den Speicherort ändern, in der die Ergebnis-Seite auf etwas anderes, und ich vergaß es. So war es die linke gibt, und ich dachte, es war eine gültige Fehler. Ja, das behebt es. Ich denke, alle Antworten waren gültig, es ist nur meine Dummheit.

InformationsquelleAutor user1157751 | 2013-04-17
Schreibe einen Kommentar