Ответ 1
Не помещайте папку src в каталог WEB-INF!
Я создаю простой сервлет и развертываю его на сервере tomcat, но получаю следующую ошибку:
Состояние HTTP 500 - Ошибка создания класса сервлета pkg.coreServlet
Структура файла на сервере tomcat:
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 ");
}
}
url Я даю http://localhost:8080/aarya/coreServlet
Я пытаюсь перезапустить tomcat, но я получаю такую же ошибку. Где я ошибаюсь?
Не помещайте папку src в каталог WEB-INF!
Измените
private static final long serialVersionUID = 1L;
для любого другого значения, такого как
private static final long serialVersionUID = 102831973239L;
также вы можете автоматически генерировать его в eclipse.
Это потому, что каждый сервлет в приложении имеет уникальный id.and tomcat вызывает проблему с двумя сервлетами с одинаковым идентификатором...
В моем случае отсутствует строка private static final long serialVersionUID = 1L;
, вызвавшая ту же ошибку. Я добавил строку, и она сработала!
Вы закрыли < web-app > в вашем web.xml? Из того, что вы опубликовали, закрывающий тег, кажется, отсутствует.
Класс сервлета должен быть в WEB-INF/классах не WEB-INF/src.
У меня возникла проблема с экземпляром Servlet. Я убрал проект, и это сработало для меня. В меню затмения перейдите в Project- > Clean. Он должен работать.
Попробуйте это:)
перед: -
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>TestServlet</servlet-class>
</servlet>
После: -
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>operation.TestServlet</servlet-class>
</servlet>
Убедитесь в следующем:
private static final long serialVersionUID = 1L;
должен быть в вашем классе (<servlet-class>MyClass</servlet-class>
).