这是我的 Servlet 代码片段,它生成 PDF 然后打开它。它无法打开“AvtoSolaZaposleniXSL.xsl”文件。如果我在普通的 Java 类中运行相同的过程,一切都会顺利进行。
public class PDF extends HttpServlet {
private static final long serialVersionUID = 1L;
public PDF() { super(); }
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//Generiraj PDF
File xmlfile = new File(getServletContext().getRealPath("AvtoSolaZ.xml"));
File xsltfile = new File(getServletContext().getRealPath("AvtoSolaZaposleniXSL.xsl"));
ExampleXML2PDF.generirajPDF(xmlfile, xsltfile);
//Počakaj da se v miru zgenerira PDF
try {
Thread.sleep(5000L);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
//Zaženi pdf
File f1 = new File(getServletContext().getRealPath("Avtosola.pdf"));
String pdfKoncni = f1.toString();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PdfReader reader = new PdfReader(pdfKoncni);
PdfStamper stamper = null;
try {
stamper = new PdfStamper(reader, baos);
} catch (DocumentException e) {
e.printStackTrace();
}
try {
stamper.close();
} catch (DocumentException e) {
e.printStackTrace();
}
// set some response headers
response.setHeader("Expires", "0");
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma", "public");
response.setContentType("application/pdf");
response.setContentLength(baos.size());
OutputStream os = response.getOutputStream();
baos.writeTo(os);
os.flush();
os.close();
}
我的所有文件都在 WebContent 文件夹中,而我的 Servlet 在默认包中。
错误:
(错误位置未知)java.io.FileNotFoundException: C:\Eclipse\eclipse\WebContent\AvtoSolaZaposleniXSL.xsl (系统找不到指定的文件) java.lang.NullPointerException
相信我,我已经搜索过这样的答案,但没有找到任何可以真正帮助我的东西。即使我放置了整个路径(不是 C:\Eclipse\eclipse... 而且我不知道为什么会这样说..)它仍然无法正常工作。
就像我说的。如果我在普通的 Java 类中运行它,它会正常生成 PDF 并且工作得很好......
import java.io.File;
public class Test {
public static void main(String[] args) {
File xmlfile = new File("WebContent/AvtoSolaZ.xml");
File xsltfile = new File("WebContent/AvtoSolaZaposleniXSL.xsl");
ExampleXML2PDF.generirajPDF(xmlfile, xsltfile);
}
}
请帮忙!