• Troubleshooting:HTTP Status 500 Error instantiating servlet class xxx


    Java和Web新手,写的第一个servlet小练习,部署到tomcat里出错,看见霍霍的Error 500很奔溃的,后来解决。全程记录如下。

    【环境设置】

    下载安装Web Server:Tomcat (http://tomcat.apache.org/

    添加环境变量:系统变量名CATALINA,变量值D:\Program Files\apache-tomcat-7.0.39-windows-x64\apache-tomcat-7.0.39

    系统变量名CLASSPATH,变量值%CATALINA%\lib\servlet-api.jar

    检查一下:

    【编写编译源代码】

    用某个编辑器编写如下内容:

    /**
    * Filename: ServletHelloWorld.java
    * Author: qyddbear
    * Date: 2013/5/7
    */
    
    //import required java libraries
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    
    public class ServletHelloWorld extends HttpServlet 
    {
        private String message;
        
        public void init() throws ServletException
        {
            //Do required initialization
            message = "Hello World";
        }
        
        public void doGet(HttpServletRequest request, 
                          HttpServletResponse response) throws ServletException, IOException
        {
            //Set response content type
            response.setContentType("text/html");
            
            //Actual logic goes here
            PrintWriter out = response.getWriter();
            out.println("<h1>" + message + "</h1>");
        }
        
        public void destroy()
        {
            //do nothing
        } 
    }

    编译源代码:javac ServletHelloWorld.java

    编译成功,会在同目录下生成ServletHelloWorld.class

    【部署servlet】

    将ServletHelloWorld.class放在tomcat的webapps\ROOT\WEB-INF下。

    修改web.xml文件(D:\Program Files\apache-tomcat-7.0.39-windows-x64\apache-tomcat-7.0.39\webapps\ROOT\WEB-INF\web.xml),把servlet的标签对放在web-app标签里。可能web-app中还有其它标签,但并不影响。

    <?xml version="1.0" encoding="ISO-8859-1"?>
    
    <web-app xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
      version="3.0"
      metadata-complete="true">
    
      <servlet>
         <servlet-name>ServletHelloWorld</servlet-name>
         <servlet-class>ServletHelloWorld</servlet-class>
      </servlet>
      
      <servlet-mapping>
         <servlet-name>ServletHelloWorld</servlet-name>
         <url-pattern>/ServletHelloWorld</url-pattern>
      </servlet-mapping>
    
    </web-app>

     【访问测试】

    启动tomcat:双击运行startup.bat(D:\Program Files\apache-tomcat-7.0.39-windows-x64\apache-tomcat-7.0.39\bin\startup.bat)

    如果tomcat成功启动,浏览器输入http://localhost:8080,会出现tomcat的欢迎页面。

    再输入http://localhost:8080/ServletHelloWorld进入我们的页面,出现下图错误。

     【解决方法】

    新安装的tomcat在webapps/ROOT/WEB-INF里没有classes文件夹,需要自己新建一个,把ServletHelloWorld.class放在里面。

    成功访问!

    附:Servlet架构

  • 相关阅读:
    Leetcode 剑指 Offer 27(二叉树的镜像)
    Leetcode 1022从根到叶的二进制之和
    Leetcode 993二叉树的堂兄弟节点
    Leetcode 965单值二叉树
    Leetcode 938 二叉搜索树的范围和
    hdu 2082 找单词
    母函数模板
    hdu 1398 Square Coins
    hdu 1085 Holding Bin-Laden Captive!
    hdu 1028 Ignatius and the Princess III
  • 原文地址:https://www.cnblogs.com/qyddbear/p/3065194.html
Copyright © 2020-2023  润新知