The company’s use of irport configuration xml to generate .jasper suffix file and then organize the data for pdf generation. The project window environment does not report an error in the execution, placed on the liunx server sometimes encounter code stuck in the JasperFillManager.fillReport in this sentence does not move the case, and does not report an error throws an error nor backward execution. I have no idea how to troubleshoot the problem.
Today, I encountered this problem again, and solved the problem after the following troubleshooting process
1, the project itself is 5.6.0 jasperreports maven package configuration, suspected that the version is too low to store this problem, in order to verify I set up a new project, found a text on the Internet for the initial integration of code configuration is as follows
maven configuration to increase the configuration
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.0</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-pdfa</artifactId>
<version>5.5.0</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>cn.lesper</groupId>
<artifactId>iTextAsian</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.4.11</version>
</dependency>
<!-- jasperreports end-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.11.0</version>
</dependency>
Test sample code
public static void main(String[] args) throws Exception {
test();
}
public static String test() throws JRException {
Map map = (Map<String, Object>)new HashMap();
List<Object> list = new ArrayList<>();
String T1 = "1";
String T2 = "2";
String T3 = "3";
String T4 = "4";
BigDecimal T5 = new BigDecimal("0");
log.error("Fetch public data");
for (int i = 0; i < 10; i++) {
Irportbean detail=new Irportbean();
detail.setL1("1");//thisCopyDate
detail.setL2("2");//writeOffDate
detail.setL3("3");/preto
detail.setL4("4");//thisto
detail.setL5("5");//practicalWater
detail.setL6("6");//netReceiptsWater
detail.setL7("7");//basicsFeeUnitPrice
detail.setL8("8");//basicsFeeMoney
detail.setL9("9");//lateFee
detail.setL10("cancelled");//cancellation flag isWriteOff
list.add(detail);
}
JRDataSource data = new JRBeanCollectionDataSource(list);
map.put("beans", data);
map.put("T1", "test");
map.put("T2", T2);
map.put("T3", T3);
map.put("T4", T4);
map.put("T5", T5);
log.error("---------------------------map :" + list.toString());
// 3. print PDF
String imageName = UUID.randomUUID() + ".pdf";
log.error("==========");
log.error(PATH + "gr_water_list.jasper");
log.error(IAMGE_PATH + imageName);
JasperPrint print = JasperFillManager.fillReport(PATH + "gr_water_list.jasper", map, new JREmptyDataSource());
JasperExportManager.exportReportToPdfFile(print,IAMGE_PATH+imageName);
log.error("---------------------------getName :" + print.getName());
String url = YUMIN + "JxReport/temp_image/" + imageName;
log.error("---------------------------url :" + url);
return url;
}
The code local window execution OK, and then packaged to the problem server through the interface test found that the normal generation of pdf, the initial confirmation of the text and the server is not related to confirm the version of the problem.
After confirming that the version of the project is integrated in accordance with the above configuration integrated into the existing project packaging test. The process also encountered two small problems
1, integration test local test no problem, put to the server found or not, found that eclipse using maven packaging if not prior to update maven and clean up the existing war, it will be the new version of the jar and the old version of the jar packaged together to war, you need to clean up the project maven. then repackaged, the phenomenon: war start after decompression lib directory See if the new package and the old jar exist at the same time, the existence of the old jar to remove, restart the project found that the problem is solved.
Read More:
- How to Solve Junit Unit Test Error: “No runnable methods“
- How to Solve the Primary Key of mybatisPlus Inserted Data is too Large Issue
- How to Solve Swagger Always Displays “basic-error-controller” Issue
- How to Solve zuul Forwarding error (No Retrayable)
- How to Solve SSM JSON Chinese Messy Code Issue
- How to Solve Error: No suitable driver found for
- How to Solve RAR Files Extract Error with sevenzipjbinding (Multithread Processing)
- How to Solve JUnit Debugging initializationerror ERROR
- Spring boot uses thread pool to realize asynchronous processing without return and asynchronous processing with return
- How to Solve Errors encountered by maven
- How to Solve Spring integrate Seata startup error
- How to Solve Log4j 2.5 upgrade to 2.15 error
- How to Solve Hbase JAVA import Package Error
- How to Solve idea com.baomidou Error
- How to Solve Swagger error: IllegalStateException
- [How to Fix]No executorfactory found to execute the application
- How to Solve Mybatisplusinterceptor error
- How to Solve Error: Maven ‘parent.relativePath‘ of POM…
- How to Solve EasyExcel3.0.5 Version Error
- Eclipse relies on spring boot configuration processor, and there is no prompt for writing properties and YML