【问题标题】:HTTP Status 500 - Error instantiating servlet class [duplicate]HTTP 状态 500 - 实例化 servlet 类时出错 [重复]
【发布时间】:2014-12-04 03:08:01
【问题描述】:

我在 Eclipse 中创建了一个 Web 项目,为了在 Tomcat 服务器中运行该项目,我以 .war 格式导出了该文件。我保留了一台单独的计算机来运行该项目,因此我可以在不同的计算机上使用它,因为它具有静态 IP。

我目前的错误是:

HTTP 状态 500 - 实例化 servlet 类 com.complexible.common.csv.DisplayRecord 时出错

我正在添加我的 web.xml 文件。请提供可能的解决方案。

<?xml version="1.0" encoding="UTF-8" ?> 
- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Museumnew</display-name> 
- <welcome-file-list>
  <welcome-file>index.html</welcome-file> 
  <welcome-file>index.htm</welcome-file> 
  <welcome-file>index.jsp</welcome-file> 
  <welcome-file>default.html</welcome-file> 
  <welcome-file>default.htm</welcome-file> 
  <welcome-file>default.jsp</welcome-file> 
  <welcome-file>/axis2-web/index.jsp</welcome-file> 
  </welcome-file-list>
- <servlet>
  <description /> 
  <display-name>DisplayRecord</display-name> 
  <servlet-name>DisplayRecord</servlet-name> 
  <servlet-class>com.complexible.common.csv.DisplayRecord</servlet-class> 
  </servlet>
- <servlet-mapping>
  <servlet-name>DisplayRecord</servlet-name> 
  <url-pattern>/DisplayRecord</url-pattern> 
  </servlet-mapping>
- <servlet>
  <display-name>Apache-Axis Servlet</display-name> 
  <servlet-name>AxisServlet</servlet-name> 
  <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> 
  </servlet>
- <servlet-mapping>
  <servlet-name>AxisServlet</servlet-name> 
  <url-pattern>/servlet/AxisServlet</url-pattern> 
  </servlet-mapping>
- <servlet-mapping>
  <servlet-name>AxisServlet</servlet-name> 
  <url-pattern>*.jws</url-pattern> 
  </servlet-mapping>
- <servlet-mapping>
  <servlet-name>AxisServlet</servlet-name> 
  <url-pattern>/services/*</url-pattern> 
  </servlet-mapping>
- <servlet>
  <display-name>Axis Admin Servlet</display-name> 
  <servlet-name>AdminServlet</servlet-name> 
  <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class> 
  <load-on-startup>100</load-on-startup> 
  </servlet>
- <servlet-mapping>
  <servlet-name>AdminServlet</servlet-name> 
  <url-pattern>/servlet/AdminServlet</url-pattern> 
  </servlet-mapping>
- <servlet>
  <display-name>Apache-Axis Admin Servlet Web Admin</display-name> 
  <servlet-name>AxisAdminServlet</servlet-name> 
  <servlet-class>org.apache.axis2.transport.http.AxisAdminServlet</servlet-class> 
  <load-on-startup>100</load-on-startup> 
  </servlet>
- <servlet-mapping>
  <servlet-name>AxisAdminServlet</servlet-name> 
  <url-pattern>/axis2-admin/*</url-pattern> 
  </servlet-mapping>
  </web-app>

这是一个 servlet 代码。

package com.complexible.common.csv;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.json.JSONException;
import org.json.simple.parser.ParseException;

/**
 * Servlet implementation class DisplayRecord
 */
public class DisplayRecord extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @throws IOException 
     * @throws ParseException 
     * @throws JSONException 
     * @see HttpServlet#HttpServlet()
     */
    public DisplayRecord() throws IOException, JSONException, ParseException {
        super();

        String  getrec=GetRecord.getrec("http://phdprototype.tk/collectionimage/4D0BFF17-5810-4644-A550-D35EE090D4A8.png","3","0");
        System.out.println(getrec);
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
                PrintWriter out= response.getWriter();
                //out.print("hesadlo");

                String abc="";

                try {
                    abc = GetRecord.getrec("http://phdprototype.tk/collectionimage/4D0BFF17-5810-4644-A550-D35EE090D4A8.png","3","0");
                } catch (JSONException | ParseException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                out.print(abc);
        // TODO Auto-generated method stub
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

}

【问题讨论】:

  • 向我们展示您的 servlet 代码。
  • 查看你的服务器日志文件发生了什么。
  • ...加上服务器日志中显示异常的错误消息...
  • 我敢打赌 DisplayRecord 不会扩展 HttpServlet

标签: java eclipse tomcat servlets jena


【解决方案1】:

我认为你得到这个错误是因为你没有将你的 servlet 类设为公开。您的 servlet 类的对象应该对容器可见,因为容器正在为您的 servlet 类创建对象。

【讨论】:

  • 这应该是评论而不是答案。
【解决方案2】:

感谢您的回复,当我检查日志文件时,我知道其中一个文件的路径是错误的,我修复了它。现在它可以正常工作了。

【讨论】:

  • 日志文件在哪里生成?
猜你喜欢
  • 2015-07-05
  • 2017-08-02
  • 2017-03-08
  • 2017-02-20
  • 2019-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多