HTTP状态500 - 实例化servlet类pkg.coreServlet时出错

Ans*_*hul 10 java tomcat servlets classnotfoundexception

我正在创建简单的servlet并在tomcat服务器中部署它但我收到以下错误:

HTTP状态500 - 实例化servlet类pkg.coreServlet时出错

tomcat服务器上的文件结构:

webapps     
| 
- aarya
  |
  - WEB-INF
    |
     -web.xml
     -src(folder)
       |
       -pkg
         |
         -coreServlet.class
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

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 ");
    }
}
Run Code Online (Sandbox Code Playgroud)

url我给的是http://localhost:8080/aarya/coreServlet 我尝试重启tomcat但我得到同样的错误.我在哪里做错了?

jav*_*dev 13

不要将src文件夹放在WEB-INF目录中!!

  • @TechDon 正确设置目录名称非常重要。Tomcat 将在名为classes 的目录中查找类,或者在名为lib 的目录中查找jar。它不会在其他地方找到它们。 (2认同)

小智 5

改变

private static final long serialVersionUID = 1L;
Run Code Online (Sandbox Code Playgroud)

任何其他值

private static final long serialVersionUID = 102831973239L;
Run Code Online (Sandbox Code Playgroud)

您也可以在eclipse中自动生成它。

这是因为应用程序中的每个servlet都有一个唯一的ID.tomcat导致两个具有相同ID的servlet出现问题...


N D*_*are 5

在我的情况下,缺少private static final long serialVersionUID = 1L;行导致了同样的错误。我添加了该行并且它起作用了!