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
gefundenAlso 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.
ist LoginServlet im guten Paket? com.bogdan.assign2.Servlets? Wo ist genau das Servlet in Ihrem Webapp-Projekt? – davidxxx
Ja, das Servlet ist in com.bogdan.assign2.servlets .. –
Wenn Sie eine Klasse nicht lokal kompilieren können, haben Sie keine Chancen, es auf dem Server auszuführen –