【发布时间】:2018-07-29 20:05:17
【问题描述】:
由于我之前的问题,我按照以下步骤在没有 maven 的情况下包含 Apache PDFbox:
- 从download site of PDFbox 下载的.jars(都在每个子项目的库下)
- 从maven repository(commons-logging 和 fontbox,但 fontbox 已包含在步骤 1 中)的 PDFbox 依赖项中下载了 .jars
- 将下载的 .jars 放在一个文件夹中 (
C:\PDFjars) - 在 eclispe 中配置构建路径(将所有 .jars 添加为外部库)现在看起来像这样:
我的小服务程序:
package servlets;
// other imports
import org.apache.pdfbox.pdmodel.PDDocument;
@WebServlet("/print")
public class PrintServlet extends HttpServlet {
public PrintServlet() {
super();
// TODO Auto-generated constructor stub
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// From a PDFbox Tutorial
//Creating PDF document object
PDDocument document = new PDDocument();
//Saving the document
document.save("C:/PdfBox_Examples/my_doc.pdf");
System.out.println("PDF created");
//Closing the document
document.close();
doGet(request, response);
}
}
所以当我启动我的网络项目并调用应该生成一个简单 PDF 文档的函数时,我得到以下错误:
Servlet.service() for servlet [servlets.PrintServlet] in context with path [/StaticsCalculator] threw exception [Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException: org.apache.pdfbox.pdmodel.PDDocument
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1291)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
at servlets.PrintServlet.doPost(PrintServlet.java:44)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
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:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
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)
解决方案:我还必须复制 WEB-INF/lib 文件夹中的 .jar。
【问题讨论】:
-
该网站上有一个“下载”部分...
-
哪里有 HTTP 代理阻止我的 eclipse 为什么不在 eclipse 中添加代理设置?
-
您是公司中唯一的 Java 开发人员吗?其他开发人员是做什么的? MavenCentral 被屏蔽其实并不少见,但后来我会成立一家公司 Nexus/Artifactory,为开发人员提供必要的工件。
标签: java eclipse exception import dependencies