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

时间:2014-10-09 08:49:20

标签: java eclipse tomcat servlets jena

我在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
    }

}

2 个答案:

答案 0 :(得分:-1)

我认为您的错误是因为您没有将您的servlet类视为公共。 servlet类的对象应该对容器可见,因为容器为servlet类创建对象。

答案 1 :(得分:-2)

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