HTTP Status 500 - Ошибка создания класса сервлета pkg.coreServlet

Я создаю простой сервлет и развертываю его на сервере 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, но я получаю такую ​​же ошибку. Где я ошибаюсь?

Ответ 1

Не помещайте папку src в каталог WEB-INF!

Ответ 2

Измените

private static final long serialVersionUID = 1L;

для любого другого значения, такого как

private static final long serialVersionUID = 102831973239L;

также вы можете автоматически генерировать его в eclipse.

Это потому, что каждый сервлет в приложении имеет уникальный id.and tomcat вызывает проблему с двумя сервлетами с одинаковым идентификатором...

Ответ 3

В моем случае отсутствует строка private static final long serialVersionUID = 1L;, вызвавшая ту же ошибку. Я добавил строку, и она сработала!

Ответ 4

Вы закрыли < web-app > в вашем web.xml? Из того, что вы опубликовали, закрывающий тег, кажется, отсутствует.

Ответ 5

Класс сервлета должен быть в WEB-INF/классах не WEB-INF/src.

Ответ 6

У меня возникла проблема с экземпляром Servlet. Я убрал проект, и это сработало для меня. В меню затмения перейдите в Project- > Clean. Он должен работать.

Ответ 7

Попробуйте это:)

перед: -

<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>

Ответ 8

Убедитесь в следующем:

  1. Правильная файловая структура "war", т.е. WEB-INF и META-INF
  2. Файл "web.xml" настроен правильно.
  3. Последнее и важное: private static final long serialVersionUID = 1L; должен быть в вашем классе (<servlet-class>MyClass</servlet-class>).