java.lang.ClassNotFoundException : org. apache.poi.POIXMLTypeLoader 错误

标签 java apache-poi

我有一个使用 apache poi 创建 ms word 文档的项目。我正在尝试使用 servlet 运行我的项目 .jsp 页面。这些是我的项目起始代码。我正在访问数据库中获取数据。

public static void Start(String SalesOrder, String type) throws SQLException, IOException {

  baslik[0]="ATA";  
  baslik[1]="LID";
  baslik[2]="PN";
  baslik[3]="QPE";
  baslik[4]="SV";
  baslik[5]="IS";
  baslik[6]="RS";
  baslik[7]="REP";
  baslik[8]="Defect";

  baslik2[0]="PN";
  baslik2[1]="NEW";
  baslik2[2]="REP";
  baslik2[3]="SV";
  baslik2[4]="Information Only";


    try {
        document = new XWPFDocument();
        start_page_1(SalesOrder,type);
        start_page_2(SalesOrder,type);
        header_footer(SalesOrder,type);
        if(type=="Gate_1")
        {
            summary(SalesOrder, type);
            eng_general(SalesOrder,type);
            oil_sys(SalesOrder,type);
            fuel_sys(SalesOrder,type);
            bleed_vlv(SalesOrder,type);
            bor_insp(SalesOrder,type);
            ext_parts(SalesOrder,type);
            fan_rotor(SalesOrder,type);
            lpc(SalesOrder,type);
            fan_case(SalesOrder, type);
            fbc(SalesOrder, type);
            ext_gear(SalesOrder, type);
            hps(SalesOrder, type);
            hpr(SalesOrder, type);
            diffuser(SalesOrder, type);
            combustor(SalesOrder, type);
            no4Bearing(SalesOrder, type);
            ngv(SalesOrder, type);
            hpt(SalesOrder, type);
            lpt(SalesOrder, type);
            tec(SalesOrder, type);
        }
        else if(type=="PDM")
            partoff(SalesOrder,type);
        else if(type=="SVR")
        {
            summary(SalesOrder, type);
            eng_general(SalesOrder,type);
            oil_sys(SalesOrder,type);
            fuel_sys(SalesOrder,type);
            bleed_vlv(SalesOrder,type);
            bor_insp(SalesOrder,type);
            ext_parts(SalesOrder,type);
            fan_rotor(SalesOrder,type);
            lpc(SalesOrder,type);
            fan_case(SalesOrder, type);
            fbc(SalesOrder, type);
            ext_gear(SalesOrder, type);
            hps(SalesOrder, type);
            hpr(SalesOrder, type);
            diffuser(SalesOrder, type);
            combustor(SalesOrder, type);
            no4Bearing(SalesOrder, type);
            ngv(SalesOrder, type);
            hpt(SalesOrder, type);
            lpt(SalesOrder, type);
            tec(SalesOrder, type);
            partoff(SalesOrder,type);
        }
        else
            sb72_0408(SalesOrder, type);
    } catch (InvalidFormatException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (URISyntaxException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
//baglanti= DriverManager.getConnection("jdbc:ucanaccess://"+db_file,db_username,db_password);
  //sorgu=baglanti.createStatement();
 //deneme=sorgu.executeQuery("SELECT * FROM TableRun");
    System.out.println("Process Completed"); 

}

我的servlet代码是这样的

package Servlet;

import java.io.IOException;
import java.sql.SQLException;

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

import access_read_and_write.access_connection;

/**
 * Servlet implementation class report_servlet
 */
@WebServlet("/report_servlet")
public class report_servlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public report_servlet() {
        super();
        // 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
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        String salesorder = request.getParameter("salesOrder");
        String radio=request.getParameter("a");
        String message = null;
        if(salesorder== null) {
            message="Wrong Sales Order Defined. Please Check your Sales Order"; 
       } 
       else {

               if(radio.equals("PDM Report"))
               {
                   try {
                    access_connection.Start(salesorder,"PDM");
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                   message=salesorder+" PDM Report was saved on your D: Drive.";
               }
               else if(radio.equals("Gate 1 Report"))
               {
                   try {
                    access_connection.Start(salesorder,"Gate_1");
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                   message=salesorder+" Gate 1 Report was saved on your D: Drive.";
               }
               else if(radio.equals("Shop Visit Report"))
               {
                   try {
                    access_connection.Start(salesorder,"SVR");
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                   message=salesorder+" Shop Visit Report was saved on your D: Drive.";
               }
               else if(radio.equals("SB72-0408 Report"))
               {
                   try {
                    access_connection.Start(salesorder,"SB72_0408");
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                   message=salesorder+" SB72-0408 Report was saved on your D: Drive.";
               }




       }
        request.setAttribute("message", message);
        request.getRequestDispatcher("pdm.jsp").forward(request, response);
    }

}

看不到任何错误,但当我运行项目时,我收到此错误。

java.lang.ClassNotFoundException: org.apache.poi.POIXMLTypeLoader
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1360)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1182)
    at org.openxmlformats.schemas.wordprocessingml.x2006.main.CTDocument1$Factory.newInstance(Unknown Source)
    at org.apache.poi.xwpf.usermodel.XWPFDocument.onDocumentCreate(XWPFDocument.java:305)
    at org.apache.poi.xwpf.usermodel.XWPFDocument.<init>(XWPFDocument.java:150)
    at access_read_and_write.access_connection.Start(access_connection.java:200)
    at Servlet.report_servlet.doPost(report_servlet.java:63)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)

在我的 .jsp 页面中,我有文本框、4 个单选按钮和 1 个提交按钮。我在文本框中写入数据,然后选择要创建的报告,然后单击提交按钮。直到今天它都工作正常。我在 .jsp 页面中添加了单选按钮,然后编辑了 servlet,它开始出现此错误。这是我的图书馆 enter image description here

最佳答案

似乎依赖 jar 之间存在版本不匹配,或者类路径中存在具有多个版本的单个 jar。删除所有 jar,转到官方 Apache POI 下载页面并下载包含所有 jar 的压缩文件。所有 jar 都是相同的版本。将这些 jar 添加到您的项目中并检查。

关于java.lang.ClassNotFoundException : org. apache.poi.POIXMLTypeLoader 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59454682/

相关文章:

java - 如何执行 native 查询并获​​取反馈?

java - 管理SpringBoot Webflux中的空指针异常

java - POI 4.1.0 折线图 y 系列显示错误的图例

java - 什么给 java.lang.NoClassDefFoundError?

java - 如何让 SwingWorker 等待从此 SwingWorker 内部启动的线程

Java:无法将字符串转换为数组

java - 在不使用任何 XML 的情况下配置 spring-batch

java - Apache POI 不应用某些颜色索引

java - 下载某些 Excel 文件并解释其某些值

java - 更改 apachee POI 中的 getROW 索引抛出 NullPointerException