2016-10-30 2 views
0

Ich habe ein nerviges Problem, ich baue meine Maven-App, führen Sie es auf Tomcat 8.5.6 Server, Hauptseite funktioniert, aber wenn ich den Login-Taste drücken, die mich umleiten sollte/home gibt es 404 index.jsp nicht ..Maven-Projekt + Java-Servlets immer wieder 404-nicht gefunden

@WebServlet("/servletLog") 
public class LoginServlet extends HttpServlet { 

LoginService userService = new LoginService(); 
/** 
* 0 
*/ 
private static final long serialVersionUID = -5954379250312991811L; 

@Override 
    public void doPost(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException { 

    try { 

     User user = new User(); 
     user.setUsername(request.getParameter("username")); 
     user.setPassword(request.getParameter("userpass")); 

     user = userService.login(user); 

     if (user != null) { 

      HttpSession session = request.getSession(true); 
      session.setAttribute("currentSessionUser", user); 

      if (user.getUserRole().name().equals("CLIENT")) { 
       response.sendRedirect("home.jsp"); 
      } // logged-in page 
      else if (user.getUserRole().name().equals("ADMIN")) { 
       response.sendRedirect("admin.jsp"); 
      } else { 
       response.sendRedirect("403.jsp"); 
      } 
     } else { 
      response.sendRedirect("403.jsp"); // error page 
     } 
    } 

    catch (Throwable theException) { 
     System.out.println(theException); 
    } 
} 
} 

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Login Application</title> 
</head> 
<body> 
<form action="servletLog" method="post"> 
    <fieldset style="width: 300px"> 
     <table> 
      <tr> 
       <td>User ID</td> 
       <td><input type="text" name="username" required="required" /></td> 
      </tr> 
      <tr> 
       <td>Password</td> 
       <td><input type="password" name="userpass"  required="required" /></td> 
      </tr> 
      <tr> 
       <td><input type="submit" value="Login" /></td> 
      </tr> 
     </table> 
    </fieldset> 
</form> 
</body> 
</html> 

ich habe versucht, auf diese Weise mit Anmerkungen und sogar mit

web.xml

gefunden

Also habe ich nie beide zusammen verwendet :) Und ich weiß nicht, warum ich 404 immer noch nicht auf/servletLog gefunden habe.

Das ist mein pom.xml

<modelVersion>4.0.0</modelVersion> 
<groupId>com.bogdan.as2</groupId> 
<artifactId>assign1_2</artifactId> 
<packaging>war</packaging> 
<version>0.0.1-SNAPSHOT</version> 
<name>assign1_2 Maven Webapp</name> 
<url>http://maven.apache.org</url> 
<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <!-- https://mvnrepository.com/artifact/javax.persistence/persistence-api --> 
    <dependency> 
     <groupId>javax.persistence</groupId> 
     <artifactId>persistence-api</artifactId> 
     <version>1.0.2</version> 
    </dependency> 

    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>4.3.5.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.6</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.1.0</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 

</dependencies> 
<build> 
    <finalName>assign1_2</finalName> 
</build> 
</project> 

ich wirklich nicht, was falsch ist .. Fehler:

HTTP-Status 500 - Fehler Instanziieren Servletklasse com.bogdan.assign2.servlets .LoginServlet

Typ Ausnahmebericht

Fehlermeldung Instanziieren Servletklasse com.bogdan.assign2.servlets.LoginServlet

Beschreibung Der Server hat einen internen Fehler festgestellt, der die Ausführung dieser Anforderung verhindert hat.

Ausnahme

javax.servlet.ServletException: Fehler Instanziieren Servletklasse com.bogdan.assign2.servlets.LoginServlet org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:472) org. apache.catalina.valves.ErrorReportValve.invoke (FehlerberichtValve.java:79) org.apache.catalina.valves.AbstractAccessLogValve.invoke (AbstractAccessLogValve.java:620) org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter. Java: 349) org.apache.coyote.http11.Http11Processor.service (Http11Processor.java:784) org.apache.coyote.AbstractProcessorL ight.process (AbstractProcessorLight.java:66) org.apache.coyote.AbstractProtocol $ ConnectionHandler.process (AbstractProtocol.java:802) org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.java: 1410) org.apache.tomcat.util.net.SocketProcessorBase.run (SocketProcessorBase.java:49) java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor $ Worker .run (ThreadPoolExecutor.java:617) org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61) java.lang.Thread.run (Thread.java:745) Ursache

java.lang.ClassNotFoundExc eption: com.bogdan.assign2.servlets.LoginServlet org.apache.catalina.loader.WebappClassLoaderBase.loadClass (WebappClassLoaderBase.java:1285) org.apache.catalina.loader.WebappClassLoaderBase.loadClass (WebappClassLoaderBase.java:1119) org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:472) org.apache.catalina.valves.ErrorReportValve.Invoke (ErrorReportValve.java:79) org.apache.catalina.valves.AbstractAccessLogValve.invoke (AbstractAccessLogValve.java:620) org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:349) org.apache .coyote.http11.Http11Processor.service (Http11Processor.java:784) org.apache.coyote.AbstractProcessorLight.process (AbstractProcessorLight.java:66) org.apache.coyote.AbstractProtocol $ ConnectionHandler.process (AbstractProtocol.java:802) org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.java:1410) org.apache.tomcat.util.net.SocketProcessorBase.run (SocketProcessorBase.java:49) java.util. concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) java.util.concur rent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61) java.lang.Thread.run (Thread.java: 745) Hinweis Die vollständige Stack-Ablaufverfolgung der Ursache ist in den Apache Tomcat/8.5.6-Protokollen verfügbar.

Ah Eine weitere Sache, die helfen könnte: Wenn ich versuche, Standard-Serien-ID für LoginServlet zu generieren: Ich bekomme Konnte die Klassendatei nicht finden, Stellen Sie sicher, dass die Datei kompilierbar ist.

+0

ist LoginServlet im guten Paket? com.bogdan.assign2.Servlets? Wo ist genau das Servlet in Ihrem Webapp-Projekt? – davidxxx

+0

Ja, das Servlet ist in com.bogdan.assign2.servlets .. –

+0

Wenn Sie eine Klasse nicht lokal kompilieren können, haben Sie keine Chancen, es auf dem Server auszuführen –

Antwort

0

Roman, Ihre Ausnahme sagt eindeutig, dass die Klasse LoginServlet nicht im Paket/Verzeichnis "com.bogdan.assign2.servlets" existiert. Überprüfen Sie Ihren Paketnamen oder geben Sie einen gültigen Paketnamen in der Datei web.xml an.

Auch LoginServlet ist in src-> main-> java-> com-> bogdon-> assign2-> Servlets-Verzeichnis vorhanden? da es ein Maven-Projekt ist.

Verwandte Themen