Ich versuche, ein einfaches Servlet in Maven mit Eclipse auszuführen. Aber Fehler 500 bekommen. Bitte sehen Sie, was ich falsch mache. Hauptsorge ist, wie man ein Servlet in Maven ausführt, da ich mit Maven nicht vertraut bin.HTTP-Status 500 - Fehler bei der Instanziierung von Servlet in Eclipse maven
index.jsp
<html>
<body>
<h2>Hello World!</h2>
<form action="mylog" method="post">
loginID:<input type="text" name="name"/><br/>
<input type="submit" value="login"/>
</form>
</body>
</html>
mylog.java (Servlet-Klasse)
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;
public class mylog extends HttpServlet {
private static final long serialVersionUID = 1L;
public mylog() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String n = request.getParameter("name");
PrintWriter out = response.getWriter();
out.print(n);
out.close();
doGet(request, response);
}
}
web.xml und Verzeichnis struktur- siehe Bild angebracht
Fehlerstack
HTTP Status 500 - Error instantiating servlet class com.issac.mylog
type Exception report
message Error instantiating servlet class com.issac.mylog
description The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Error instantiating servlet class com.issac.mylog
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1100)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:687)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Unknown Source)
root cause
java.lang.ClassNotFoundException: com.issac.mylog
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1100)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:687)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Unknown Source)
es versucht, die Schaffung zu lösen, sondern zeigt „Dieser Ordner ist bereits ein Quellordner“ , auch wenn ich Pfad-> Reihenfolge und Export erstelle, zeigt es alle drei src/main (Ressourcen, Java & Test) aber mit "Missing" in Klammern für src/main/java & src/main/test geschrieben. Auch ich habe ein ähnliches Projekt vor zwei Tagen versucht, da zeigte es alle drei, und Servlet arbeitete auch. – techvigil
Klingt wie Eclipse ist nicht mit dem Dateisystem synchronisiert. Versuchen Sie, das Projekt im Paket-Explorer zu löschen (nur anzeigen - keine Dateien), dann importieren Sie es als Maven-Projekt – Reimeus
ja, es gab ein Problem mit Eclipse, dass es nicht alle drei Ordner angezeigt. Aber jetzt, da ich zwei Diff-Projekte ausprobiert habe, funktioniert es gut für ein, aber dasselbe Problem für andere Projekte. Gibt es dafür keine dauerhafte Lösung? – techvigil