簡體   English   中英

java.lang.ClassNotFoundException: org.apache.poi.POIXMLTypeLoader 錯誤

[英]java.lang.ClassNotFoundException: org.apache.poi.POIXMLTypeLoader error

我有一個使用 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,它開始給我這個錯誤。 這是我的圖書館在此處輸入圖片說明

看起來好像依賴 jar 之間存在版本不匹配,或者類路徑中存在具有多個版本的單個 jar。 刪除所有 jar,轉到官方 Apache POI 下載頁面並下載包含所有 jar 的壓縮文件。 所有的罐子都是相同的版本。 將這些 jars 添加到您的項目中並檢查。

嘗試導入 org.apache.poi.POIXMLTypeLoader 庫。 一些罐子可能丟失或放錯了地方。 這是選項之一: https : //jar-download.com/artifacts/org.apache.poi/poi-ooxml/3.17/source-code/org/apache/poi/POIXMLTypeLoader.java

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM