【问题标题】:HTTP Status 500 - Error instantiating servlet class pkg.coreServletHTTP 状态 500 - 实例化 servlet 类 pkg.coreServlet 时出错
【发布时间】:2013-04-10 09:08:00
【问题描述】:

我正在创建简单的 servlet 并将其部署在 tomcat 服务器中,但出现以下错误:

HTTP 状态 500 - 实例化 servlet 类 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 ");
    }
}

我给的网址是http://localhost:8080/aarya/coreServlet 我尝试重新启动tomcat,但我得到了同样的错误。我哪里做错了?

【问题讨论】:

    标签: java tomcat servlets classnotfoundexception


    【解决方案1】:

    不要把src文件夹放在WEB-INF目录下!!

    【讨论】:

    • 我是在mkyong.com/servlet/a-simple-servlet-example-write-deploy-run的帮助下做的,是不是错了?
    • 即便如此,src 也在 WEB-INF 之外
    • 是的。他将 src 文件夹放在根目录中。
    • @NickJ 文件夹名称真的很重要吗,我的意思是我将 .class 文件放在 src 中,重要吗?
    • @TechDon 正确获取目录名称非常重要。 Tomcat 将在名为 classes 的目录中查找类,或在名为 lib 的目录中查找 jar。它不会在其他任何地方找到它们。
    【解决方案2】:

    改变

    private static final long serialVersionUID = 1L;
    

    到任何其他值,如

    private static final long serialVersionUID = 102831973239L;
    

    你也可以在eclipse中自动生成。

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

    【讨论】:

      【解决方案3】:

      在我的情况下,缺少 private static final long serialVersionUID = 1L; 行会导致相同的错误。我添加了这条线,它起作用了!

      【讨论】:

        【解决方案4】:

        您是否关闭了 web.xml 中的 标签?从您发布的内容来看,结束标签似乎不见了。

        【讨论】:

        • 对不起,我错过了帖子。
        【解决方案5】:

        servlet 类应该在 WEB-INF/classes 而不是 WEB-INF/src。

        【讨论】:

          【解决方案6】:

          servlet 启动/请求 期间可能会出现多种情况。 希望您检查服务器日志的完整堆栈跟踪, 如果您有tomcat,您还可以在500 Internal Server Error 页面的html 预览中看到确切原因

          奇怪的是,如果你再次尝试点击请求 url,你会得到 404 Not Found 页面。

          您还可以通过在所有类构造函数初始化块上放置断点来调试此问题,其对象是在 servlet 启动/请求期间创建的。

          就我而言,我没有为 Weld CDI 注入工作加载 javaassist jar。它显示 NoClassDefFound 错误。

          【讨论】:

          • 那么如何解决这个错误呢?我尝试了很多解决方案,但对我没有任何效果。
          【解决方案7】:

          我遇到了 Servlet 实例化的问题。我清理了这个项目,它对我有用。在 Eclipse 菜单中,转到 Project->Clean。它应该可以工作。

          【讨论】:

            【解决方案8】:

            试试这个:)

            之前:-

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

            【讨论】:

              【解决方案9】:

              确保以下几点:

              1. 正确的“战争”文件结构,即 WEB-INF 和 META-INF
              2. “web.xml”文件设置正确。
              3. 最后也是最重要的:private static final long serialVersionUID = 1L; 应该在你的课堂上 (&lt;servlet-class&gt;MyClass&lt;/servlet-class&gt;)。

              【讨论】:

                猜你喜欢
                • 2017-08-02
                • 2017-03-08
                • 2017-02-20
                • 2019-07-29
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多