在搜索之后,我找到了一些东西,可以将XML作为输入,并将其设置为PDF,但是我得到了这个错误。任何帮助都将不胜感激。
@Service
public class PDFGenerationDemo implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
public static final String RESOURCES_DIR;
public static final String OUTPUT_DIR;
static {
RESOURCES_DIR = "src//main//resources//";
OUTPUT_DIR = "src//main//resources//output//";
}
public void makeHTML() throws IOException, TemplateException, JRException {
File file = ResourceUtils.getFile("classpath:jasper.jrxml");
JasperReport jReport=JasperCompileManager.compileReport(file.getAbsolutePath());
Map<String, Object> params = new HashMap<String, Object>();
Document document =
JRXmlUtils.parse(JRLoader.getLocationInputStream(RESOURCES_DIR+"sample.xml"));
params.put(JRXPathQueryExecuterFactory.PARAMETER_XML_DATA_DOCUMENT, document);
params.put(JRXPathQueryExecuterFactory.XML_DATE_PATTERN, "yyyy-MM-dd");
params.put(JRXPathQueryExecuterFactory.XML_NUMBER_PATTERN, "#,##0.##");
params.put(JRXPathQueryExecuterFactory.XML_LOCALE, Locale.ENGLISH);
params.put(JRParameter.REPORT_LOCALE, Locale.US);
JasperPrint jPrint = JasperFillManager.fillReport(jReport, params);
JasperExportManager.exportReportToPdfFile(jPrint,OUTPUT_DIR+"CustomersReport.pdf");
}
}
误差
2020-02-28 14:39:44 [http-nio-9005-exec-2] DEBUG o.s.w.s.m.m.a.ExceptionHandlerExceptionResolver - Resolving exception from handler [public void com.imoveinvest.propertyuploader.controller.SaveOrValidateValuationReport.htmlCall() throws java.io.IOException,freemarker.template.TemplateException,net.sf.jasperreports.engine.JRException]: net.sf.jasperreports.engine.JRException: Error compiling report java source files: D:\SanjayS\ImoveHome\property-uploade-service\Blank_A4_1582880983002_121813.java .
2020-02-28 14:39:44 [http-nio-9005-exec-2] DEBUG o.s.w.s.m.a.ResponseStatusExceptionResolver - Resolving exception from handler [public void com.imoveinvest.propertyuploader.controller.SaveOrValidateValuationReport.htmlCall() throws java.io.IOException,freemarker.template.TemplateException,net.sf.jasperreports.engine.JRException]: net.sf.jasperreports.engine.JRException: Error compiling report java source files: D:\SanjayS\ImoveHome\property-uploade-service\Blank_A4_1582880983002_121813.java .
2020-02-28 14:39:44 [http-nio-9005-exec-2] DEBUG o.s.w.s.m.s.DefaultHandlerExceptionResolver - Resolving exception from handler [public void com.imoveinvest.propertyuploader.controller.SaveOrValidateValuationReport.htmlCall() throws java.io.IOException,freemarker.template.TemplateException,net.sf.jasperreports.engine.JRException]: net.sf.jasperreports.engine.JRException: Error compiling report java source files: D:\SanjayS\ImoveHome\property-uploade-service\Blank_A4_1582880983002_121813.java .
2020-02-28 14:39:44 [http-nio-9005-exec-2] DEBUG o.s.web.servlet.DispatcherServlet - Could not complete request
net.sf.jasperreports.engine.JRException: Error compiling report java source files: D:\SanjayS\ImoveHome\property-uploade-service\Blank_A4_1582880983002_121813.java .
Caused by: java.io.IOException: Cannot run program "javac": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at net.sf.jasperreports.engine.design.JRJavacCompiler.compileClasses(JRJavacCompiler.java:63)
... 49 common frames omitted
,我一直在为这件事苦苦挣扎,请帮帮忙。
发布于 2020-02-28 10:02:55
当您打开命令行shell并键入"javac“时会发生什么?如果没有找到程序"javac“,它会失败吗?
看起来jasper报告正在生成Java代码,然后尝试编译它(javac是Java编译器),但是它找不到编译器。这可能是因为它没有安装,也可能是因为它不在您的“路径”上。细节将取决于您正在使用的操作系统。但希望这提供了一个线索,什么是出了问题,并帮助你解决它。
(实际上,仔细观察诊断结果就会发现,您在Windows上,这意味着我将无法帮助您提供更多的细节。)
https://stackoverflow.com/questions/60448702
复制相似问题