私は迷惑な問題があります.Mavenアプリケーションをビルドして、tomcat 8.5.6サーバーで実行します。メインページは動作しますが、私をリダイレクトする必要があるログインボタンを押します。 /家にそれは私が注釈をこの方法を試してみました、とさえしてきたindex.jspMavenプロジェクト+ javaサーブレットが404を返し続けている
@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>
..見つからない404を与える
web.xmlの
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>com.bogdan.assign2.servlets.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/loginServlet</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>LogoutServlet</display-name>
<servlet-name>LogoutServlet</servlet-name>
<servlet-class>com.bogdan.assign2.servlets.LogoutServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LogoutServlet</servlet-name>
<url-pattern>/LogoutServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
私は両方とも一緒に使ったことはありません:)そして、なぜ私は/ servletLogに404が見つからないのか分かりません。
この
は、私は本当に間違っているものを得ることはありません、私の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>
..です エラー:
HTTPステータス500 - エラーインスタンス化するサーブレットクラスのcom.bogdan.assign2.servlets .LoginServlet
タイプ例外レポート
メッセージエラーインスタンス化するサーブレットクラスcom.bogdan.assign2.servlets.LoginServlet
説明この要求を実行できない内部エラーがサーバーで発生しました。
例外
javax.servlet.ServletException:エラーインスタンス化するサーブレットクラスcom.bogdan.assign2.servlets.LoginServlet org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 組織。 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.AbstractProcessorL (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) 根本原因
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) プロパティ。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 (ThreadPoolExecutor.java:617) org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Thread.java: 745) 注意根本原因の完全なスタックトレースは、Apache Tomcat/8.5.6ログで使用できます。
Ahもうひとつ役立つこと:LoginServletのデフォルトのシリアルIDを生成しようとすると、クラスファイルが見つかりませんでした。ファイルがコンパイル可能であることを確認してください。
は良いパッケージのLoginServletですか? com.bogdan.assign2.servlets? webappプロジェクトのサーブレットはどこにありますか? – davidxxx
はい、サーブレットはcom.bogdan.assign2.servletsにあります。 –
クラスをローカルでコンパイルできない場合は、サーバ上で実行する可能性はありません –