我正在尝试通过以下servlet生成动态PDF文件。
import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
// Document Object
import com.itextpdf.text.Document;
//For adding content into PDF document
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.DocumentException;
public class CreatePDFExample extends HttpServlet {
//invoked from doGet method to create PDF through servlet
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//Set content type to application / pdf
//browser will open the document only if this is set
response.setContentType("application/pdf");
//Get the output stream for writing PDF object
OutputStream out=response.getOutputStream();
try {
Document document = new Document();
/* Basic PDF Creation inside servlet */
PdfWriter.getInstance(document, out);
document.open();
document.add(new Paragraph("Tutorial to Generate PDF using Servlet"));
document.add(new Paragraph("PDF Created Using Servlet, iText Example Works"));
document.close();
}
catch (DocumentException exc){
throw new IOException(exc.getMessage());
}
finally {
out.close();
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "This Servlet Generates PDF Using iText Library";
}
}
但我收到以下错误:
Error 500--Internal Server Error
java.lang.NoClassDefFoundError: com/itextpdf/text/DocumentException
at CreatePDFExample.processRequest(CreatePDFExample.java:24)
at CreatePDFExample.doPost(CreatePDFExample.java:47)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6310)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3622)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
我正在使用 weblogic应用程序服务器8.1 ....我正在使用 iTextPDF 。所以我已经为jar文件设置了CLASSPATH。
CLASSPATH:
D:\itextpdf-5.3.4.jar;D:\servlet-2-3.jar;.;
PATH:
C:\Program Files (x86)\Java\jdk1.6.0_14\bin;.;
请告诉我为什么会出现此错误????我已经花了很多时间。没有遇到小问题。请帮助我。
谢谢
完成建议的操作后,出现以下错误
Error 500--Internal Server Error
java.lang.ExceptionInInitializerError
at com.itextpdf.text.pdf.PdfWriter.(PdfWriter.java:1403)
at CreatePDFExample.processRequest(CreatePDFExample.java:26)
at CreatePDFExample.doPost(CreatePDFExample.java:47)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6310)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3622)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
Caused by: java.lang.NullPointerException
at java.lang.Class.privateGetDeclaredFields(Class.java:1488)
at java.lang.Class.getDeclaredFields(Class.java:1073)
先前的答案告诉您,缺少了一个jar,这不是一个不好的猜测,因为错误消息清楚地表明找不到iText类之一。
不幸的是,该错误消息具有误导性。Java还表示,如果存在任何歧义,它将找不到类。如果您的CLASSPATH中有多个iText jar,就是这种情况。
通过在CLASSPATH中添加另一个iText
jar,使问题变得更糟。现在,您遇到了一个问题,该问题是由weblogic实例中的JVM提供两个不同版本的iText引起的。
搜索所有CLASSPATH,不要忘记服务器CLASSPATH,您会发现D:\
itextpdf-5.3.4.jar并不是weblogic寻找PdfWriter类的唯一地方。从CLASSPATH中删除所有iText
jar,直到只剩下一个。
我正在尝试编写一个Word-to-PDF转换器,并将Java代码以Java小程序的形式构建到HTML网站中。 我使用了http://java.worldbestlearningcenter.com/2013/07/word-to-pdf-converter.html.的Java代码。代码本身似乎工作得很好,当我在Eclipse中运行程序时,我确实可以将word文档转换为PDF。现在我想将该代码添加
我创建了一个控制台应用程序。这个应用程序可以生成pdf。我使用itextpdf。我在build gradle中添加了: 当我在命令行中启动程序时,我会看到一个日志: 当我在IntelliJ中启动应用程序时,它会正常工作。 建筑格雷德尔:
问题内容: 我注意到一个奇怪的问题。我可以使用Junit运行我的测试用例,但是当我使用maven运行时,其中一个测试用例失败。有人抱怨找不到Gson class def。 我能够在Maven依赖项中看到Gson jar。 因此,我怀疑classpath是否不包括Gson。因此,我使用-X运行Maven,并注意到了一些线索。 我有一个依赖于Symbology项目的项目,而这又使用了Gson。但是现在
问题内容: 我尝试通过tomcat7运行我的项目。jax ws maven插件生成了我的Web服务的wsdl文件后(成功生成),但尝试在浏览器中查看wsdl文件,但未得到结果。 我试图通过tomcat7服务器运行我的项目,但出现此错误,并且我没有解决此问题的方法,这是我的错误: 任何建议,解决方案…谢谢 问题答案: 在即将上课的地方加罐子。 同样存在于 尝试将这些jar添加到服务器/库中,或将其与
问题内容: 我已经更新了我的依赖性,就像您在评论中所说的那样,现在我有了这个: 这是我的新pom: 我必须精确地说,我从未使用过杰克逊,而且运行非常正常。也许是因为auf spring 5? 问题答案: 尝试使用最新的。我将其升级到了,现在可以使用了。