これは、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フォルダーにあり、サーブレットはデフォルトのパッケージにあります。
エラー:
(エラーの場所は不明)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);
}
}
助けてください!