2016-10-30 3 views
0

私は迷惑な問題があります.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を生成しようとすると、クラスファイルが見つかりませんでした。ファイルがコンパイル可能であることを確認してください。

+0

は良いパッケージのLoginServletですか? com.bogdan.assign2.servlets? webappプロジェクトのサーブレットはどこにありますか? – davidxxx

+0

はい、サーブレットはcom.bogdan.assign2.servletsにあります。 –

+0

クラスをローカルでコンパイルできない場合は、サーバ上で実行する可能性はありません –

答えて

0

ローマンでは、クラスLoginServletがパッケージ/ディレクトリ "com.bogdan.assign2.servlets"内に存在しないことが明確に示されています。パッケージ名を再度確認するか、web.xmlファイルに有効なパッケージ名を入力してください。

また、LoginServletはsrc-> main-> java-> com-> bogdon-> assign2-> servletsディレクトリ内にありますか?これはmavenプロジェクトなので