के साथ जैस्पर रीपॉर्ट्स का उपयोग करना मेरे पास एक वेब ऐप है और क्लाइंट ने कुछ रिपोर्ट देखने का अनुरोध किया है। दृष्टिकोण iReport का उपयोग करने और उन्हें स्क्रीन पर रिपोर्ट दिखाने के लिए किया गया है।एक सापेक्ष पथ
I have already asked something like this। लेकिन आज मैंने पाया है कि रिपोर्ट फाइलों के पथ (jrxml) पूर्ण हैं। तो मुझे प्रोग्राम को बदलना है ताकि यह सापेक्ष पथ स्वीकार कर सके। मैं ऐसा करने की कोशिश कर रहा हूं, लेकिन ऐसा लगता है कि न तो jrxml या संकलित (.jasper) फ़ाइलें न तो संकलित या रिपोर्ट को भरने के सापेक्ष पथ स्वीकार करती हैं।
यह मैं इतनी दूर क्या मिल गया है है:
//path is generated as request.getContextPath() + "/jrxmlFiles/"
public void generateReport(HttpServletResponse res, ConexionAdmin con, String path) throws Exception{
ServletOutputStream out = null;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
JasperDesign jasperDesign = JRXmlLoader.load(path);
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
byte[] bytes = JasperRunManager.runReportToPdf(jasperReport, pars, con.initConexion());
res.setContentType("application/pdf");
res.setContentLength(bytes.length);
out = res.getOutputStream();
out.write(bytes, 0, bytes.length);
res.setHeader("Cache-Control", "cache");
res.setHeader("Content-Disposition", "attachment; filename=report.pdf");
res.setHeader("Pragma", "cache");
res.setContentLength(bos.size());
out.write(bos.toByteArray());
out.flush();
bos.close();
out.close();
res.flushBuffer();
}
यह पूर्ण पथ के साथ काम करने लगता है, लेकिन मुझे फेंकता है:
Exception Message
net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException
जब एक रिश्तेदार पथ के लिए बदल दिया है। मैंने अपने फिट बैठने के तरीके में कोई सफलता नहीं के साथ नेट की खोज की है।
मेरे पास जैस्पर एपीआई के लिए जावाडॉक है, लेकिन अगर मैं इसकी मदद कर सकता हूं तो मैं इसे पढ़ नहीं सकता हूं।
लगता है कि मैं पार्स की घोषणा जोड़ने के लिए भूल गया हूं, यह सिर्फ एक नया हैसमैप() है (जैसा कि रिपोर्ट में मैं कोशिश कर रहा हूं कोई चर नहीं है)। गलत जगह के लिए खेद है! – Random