【问题标题】:HTTP Status 500 - Servlet execution threw an exception (java.lang.ClassNotFoundException)HTTP 状态 500 - Servlet 执行引发异常 (java.lang.ClassNotFoundException)
【发布时间】:2015-08-23 17:57:11
【问题描述】:

我收到此资源未找到错误,我无法弄清楚我的代码有什么问题。这是我的代码。

TwitterServlet.java:

package com.dhruvil.jsw;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

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

import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.auth.AccessToken;




public class TwitterServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;


    public TwitterServlet() {
     super();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String CONSUMER_KEY = "xxx";
        request.setCharacterEncoding("UTF-8");
        String CONSUMER_KEY_SECRET = "xxx";
        String AccessToken = "xxx";
        String AccessTokenSecret = "xxx";
        response.setContentType("text/html");
        response.setContentType("application/PDF");
        String input1 = request.getParameter("first");


        System.out.println(input1);
        if (input1 == null || input1.trim().length() == 0) {
            input1 = "You didn't enter any text.";
       }
        XSSFWorkbook workbook = new XSSFWorkbook();

        XSSFSheet sheet = workbook.createSheet("Twitter Sheet");



        try{
        Twitter twitter = new TwitterFactory().getInstance();
            twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_KEY_SECRET);
            AccessToken oathAccessToken = new AccessToken(AccessToken, AccessTokenSecret);
            twitter.setOAuthAccessToken(oathAccessToken);
            List<Status> status = twitter.getUserTimeline(input1);
            List<String> tweets  = new ArrayList<String>();
            for (Status status2 : status)
            {
                tweets.add(status2.getText());
                System.out.println("---Tweet---"+status2.getText());    
            }
            WriteExcel.writeExcel(tweets, "Tweets.xls");       




            }catch (TwitterException te){
                System.out.println("Error occured "+te);
            }
            System.out.println("Tweets Retrieved");



        super.doPost(request, response);
    }

}

WriteExcel.java:

package com.dhruvil.jsw;

import java.io.FileOutputStream;
import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class WriteExcel
{

    public static void main(String[] args)
    {

    }

    public static void writeExcel(List<String> data, String fileName)
    {
        try
        {
            HSSFWorkbook workbook = new HSSFWorkbook();
            HSSFSheet sheet = workbook.createSheet("Sheet1");
            HSSFRow rowhead = sheet.createRow((short) 0);
            rowhead.createCell((short) 0).setCellValue("CellHeadName1");
            rowhead.createCell((short) 1).setCellValue("CellHeadName2");
            rowhead.createCell((short) 2).setCellValue("CellHeadName3");
            int i = 1;
            for (String dataRow : data)
            {

                HSSFRow row = sheet.createRow((short) i);
                row.createCell((short) 0).setCellValue(dataRow);
                i++;
            }
            String yemi = "e:/"+fileName;
            FileOutputStream fileOut = new FileOutputStream(yemi);
            workbook.write(fileOut);
            fileOut.close();
        }
        catch (Exception e1)
        {
            e1.printStackTrace();
        }
    }
}

index.jsp:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="TwitterServlet" method="get">
Enter Twitter Search Details    : <input type="text" name="first"><br>
<input type="submit">
</form>
</body>
</html>

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" 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">
    <display-name>
    Twitter17</display-name>
    <servlet>
        <description>
        </description>
        <display-name>
        TwitterServlet</display-name>
        <servlet-name>TwitterServlet</servlet-name>
        <servlet-class>
        com.dhruvil.jsw.TwitterServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>TwitterServlet</servlet-name>
        <url-pattern>/TwitterServlet</url-pattern>
  </servlet-mapping>
     <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>

错误:

HTTP 状态 500 - Servlet 执行引发异常

类型异常报告 消息 Servlet 执行抛出异常 描述 服务器遇到一个内部错误,阻止它完成这个请求。 例外 javax.servlet.ServletException:Servlet 执行引发异常 根本原因 java.lang.NoClassDefFoundError: org/openxmlformats/schemas/spreadsheetml/x2006/main/CTSheet com.dhruvil.jsw.TwitterServlet.doGet(TwitterServlet.java:46) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) javax.servlet.http.HttpServlet.service(HttpServlet.java:723) 根本原因 java.lang.ClassNotFoundException:org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheet org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) com.dhruvil.jsw.TwitterServlet.doGet(TwitterServlet.java:46) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) javax.servlet.http.HttpServlet.service(HttpServlet.java:723)

【问题讨论】:

  • 您是否在依赖项中缺少任何与 poi 相关的 jar,例如 poi-ooxml-schemas-3.10-FINAL.jar
  • 是的 jar 丢失了。谢谢楼主

标签: java jsp servlets twitter


【解决方案1】:

您的依赖项中缺少任何与 poi 相关的 jar,例如 poi-ooxml-schemas-3.10-FINAL.jar

查看以下链接了解更多详情:-

Common POI Related Errors

【讨论】:

    【解决方案2】:

    如果您使用pom.xml,请包含此依赖项:

    <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-ooxml-schemas</artifactId>
      <version>3.10-FINAL</version>
    </dependency>
    

    或者在你的类路径中包含这个 jar:poi-ooxml-schemas-3.10-FINAL.jar

    【讨论】:

      猜你喜欢
      • 2014-10-26
      • 2012-11-18
      • 2015-09-26
      • 1970-01-01
      • 2013-01-25
      • 2017-11-28
      • 2015-07-27
      • 2018-06-29
      • 1970-01-01
      相关资源
      最近更新 更多