2017-03-15 3 views
1

habe ich eine jsp Datei register.jsp, in dem ich die Details des Benutzers bin immer und versuchen, es in der Datenbank RegisterServlet.java zu sparenHTTP-Status 500 - Fehler Instanziieren Servletklasse com.controller.RegisterServlet

package com.controller; 

import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import com.model.User; 
import com.service.RegisterService; 


public class RegisterServlet extends HttpServlet { 

    public void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
    response.setContentType("text/html;charset=UTF-8"); 
    PrintWriter out = response.getWriter(); 
    String firstName = request.getParameter("firstName"); 
    String middleName = request.getParameter("middleName"); 
    String lastName = request.getParameter("lastName"); 
    String email = request.getParameter("email"); 
    String userId = request.getParameter("userId"); 
    String password = request.getParameter("password"); 
    User user = new User(firstName,middleName,lastName, email,userId, password); 

    try { 
     RegisterService registerService = new RegisterService(); 
     boolean result = registerService.register(user);  
     out.println("<html>"); 
     out.println("<head>");  
     out.println("<title>Registration Successful</title>");  
     out.println("</head>"); 
     out.println("<body>"); 
     out.println("<center>"); 
     if(result){ 
      out.println("<h1>Thanks for Registering with us :</h1>"); 
      out.println("To login with new UserId and Password<a href=login.jsp>Click here</a>"); 
     }else{ 
      out.println("<h1>Registration Failed</h1>"); 
      out.println("To try again<a href=register.jsp>Click here</a>"); 
     } 
     out.println("</center>"); 
     out.println("</body>"); 
     out.println("</html>"); 
    } finally {   
     out.close(); 
    } 

web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="WebApp_ID" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
    <display-name>MVCApplication</display-name> 
    <servlet> 
     <display-name>LoginServlet</display-name> 
     <servlet-name>LoginServlet</servlet-name> 
     <servlet-class>com.controller.LoginServlet</servlet-class> 
    </servlet> 
    <servlet> 
     <display-name>RegisterServlet</display-name> 
     <servlet-name>RegisterServlet</servlet-name> 
     <servlet-class>com.controller.RegisterServlet</servlet-class> 
    </servlet> 
    <servlet> 
     <servlet-name>InsertDataItem</servlet-name> 
     <servlet-class>com.controller.InsertDataItem</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>LoginServlet</servlet-name> 
     <url-pattern>/LoginServlet</url-pattern> 
    </servlet-mapping> 
    <servlet-mapping> 
     <servlet-name>RegisterServlet</servlet-name> 
     <url-pattern>/RegisterServlet</url-pattern> 
    </servlet-mapping> 
    <servlet-mapping> 
     <servlet-name>InsertDataItem</servlet-name> 
     <url-pattern>/InsertDataItem</url-pattern> 
    </servlet-mapping> 
    <welcome-file-list> 
     <welcome-file>login.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 

Fehler

**exception** 
javax.servlet.ServletException: Error instantiating servlet class com.controller.RegisterServlet 
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:474) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) 
    org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783) 
    org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 
    org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:798) 
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1434) 
    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) 


**root cause** 
java.lang.ClassNotFoundException: com.controller.RegisterServlet 
    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:474) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) 
    org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783) 
    org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 
    org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:798) 
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1434) 
    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) 

Wann immer einreichen ich meine Daten in der Datenbank diesen Fehler registrieren oben knallt !. Kann mir bitte jemand helfen ??

+0

Wie der Stacktrace zeigt, ist die Ursache eine 'ClassNotFoundException'. Haben Sie sichergestellt, dass die Klasse auf dem Server bereitgestellt wird (d. H. In der .war-Datei enthalten)? – ohlec

+0

fügen Sie diese Klasse dem Server hinzu, erstellen Sie eine Eclipse-Projekt-Proprieties-Deplyements-Assembly, und fügen Sie diese Klasse hinzu –

Antwort

0

Sie müssen sicherstellen, dass die Klasse RegisterServlet tatsächlich für den Servlet-Container verfügbar ist.

Regel innerhalb des WEB-INF-Verzeichnis, werden Sie die folgenden Verzeichnisse haben:

  • lib
  • Klassen

Sie müssen sicherstellen, dass die Klasse innerhalb der zur Verfügung Klassenverzeichnis oder die Klasse befindet sich in einem JAR im Verzeichnis lib