我有一个使用 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 的压缩文件。所有 jar 都是相同的版本。将这些 jar 添加到您的项目中并检查。
关于java.lang.ClassNotFoundException : org. apache.poi.POIXMLTypeLoader 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59454682/