Ich erstelle ein einfaches Servlet und stelle es auf einem Tomcat-Server bereit. Ich erhalte jedoch die folgende Fehlermeldung:
HTTP-Status 500 - Fehler beim Instanziieren der Servlet-Klasse pkg.coreServlet
Dateistruktur auf dem Tomcat-Server:
webapps
|
- aarya
|
- WEB-INF
|
-web.xml
-src(folder)
|
-pkg
|
-coreServlet.class
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://Java.Sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://Java.Sun.com/xml/ns/j2ee
http://Java.Sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>aaryaservlet</servlet-name>
<servlet-class>pkg.coreServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>aaryaservlet</servlet-name>
<url-pattern>/coreServlet</url-pattern>
</servlet-mapping>
</web-app>
coreServlet.Java:
package pkg;
import Java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class coreServlet extends HttpServlet
{
/**
*
*/
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException
{
PrintWriter out = res.getWriter();
res.setContentType("text/html");
out.println("this is First servlet Example ");
}
}
die URL, die ich gebe, ist http://localhost:8080/aarya/coreServlet
Ich versuche, Tomcat neu zu starten, erhalte aber dieselbe Fehlermeldung. Wo mache ich falsch?
Legen Sie den src-Ordner nicht im WEB-INF-Verzeichnis ab !!
Ändere das
private static final long serialVersionUID = 1L;
zu jedem anderen Wert wie
private static final long serialVersionUID = 102831973239L;
sie können es auch automatisch in Eclipse generieren.
Dies liegt daran, dass jedes Servlet in einer App eine eindeutige ID hat. Tomcat verursacht Probleme mit zwei Servlets, die dieselbe Id ...
Haben Sie das <web-app> -Tag in Ihrer web.xml geschlossen? Nach dem, was Sie gepostet haben, scheint das schließende Tag zu fehlen.
Die Servlet-Klasse sollte in den WEB-INF-Klassen und nicht in WEB-INF/src stehen.
In meinem Fall hat die private static final long serialVersionUID = 1L;
-Zeile den gleichen Fehler verursacht. Ich habe die Zeile hinzugefügt und es hat funktioniert!
Versuche dies:)
Vor:-
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>TestServlet</servlet-class>
</servlet>
Nach dem:-
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>operation.TestServlet</servlet-class>
</servlet>
Ich hatte ein Problem mit der Servlet-Instantiierung. Ich habe das Projekt gesäubert und es hat für mich funktioniert. Gehen Sie im Eclipse-Menü zu Projekt-> Reinigen. Es sollte funktionieren.
Stellen Sie Folgendes sicher:
private static final long serialVersionUID = 1L;
sollte in deiner Klasse sein (<servlet-class>MyClass</servlet-class>
).