Получение приведенной ниже ошибки в функции fillReport в приложении Spring Boot. Путь к яшме и имя файла яшмы верны. Когда я использовал другую яшму без динамических данных, это сработало.
Вызвано: java.lang.NoClassDefFoundError: CoffeeLandscape_7948ab1e94bc10a49f7da901b3157ad312c5d5a7dd059d90c5be01ce54453e8a (неправильное имя: CoffeeLandscape)
at /Ява .lang.ClassLoader.defineClass1(собственный метод)
в java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
в net.sf.jasperreports.engine.util.JRClassLoader. loadClass(JRClassLoader.java:341)
в net.sf.jasperreports.engine.util.CompiledClassesLoader.loadCompiledClass(CompiledClassesLoader.java:87)
в net.sf.jasperreports.engine.util.JRClassLoader. loadClassFromBytes(JRClassLoader.java:308)
в net.sf.jasperreports.engine.design.JRAbstractJavaCompiler.loadClass(JRAbstractJavaCompiler.java:168)
в net.sf.jasperreports.engine.design.JRAbstractJavaCompiler. loadEvaluator(JRAbstractJavaCompiler.java:117)
в net.sf.jasperreports.engine.design.JRAbstractCompiler.createEvaluator(JRAbstractCompiler.java:439)
в net.sf.jasperreports.engine.design.JRAbstractCompiler. loadEvaluator(JRAbstractCompiler.java:412)
в net.sf.jasperreports.engine.JasperCompileManager.getEvaluator(JasperCompileManager.java:382)
в net.sf.jasperreports.engine.fill.JRFillDataset.createCalculator( JRFillDataset.java:495)
в net.sf.jasperreports.engine.fill.BaseReportFiller.(BaseReportFiller.java:169)
в net.sf.jasperreports.engine.fill.JRBaseFiller.(JRBaseFiller. java:278)
в net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:82)
в net.sf.jasperreports.engine.fill.JRFiller.createBandReportFiller(JRFiller.java) :251)
в net.sf.jasperreports.engine.fill.JRFiller.createReportFiller(JRFiller.java:272)
в net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java) :114)
в net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:103)
в net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:530 )
в net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:954)
в org.amrita.erp.services.mm.ReportHelperForMm.getPurchaseRequisitionPdf(ReportHelperForMm.java:39)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(собственный метод)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
в java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
в java.base/java.lang.reflect.Method.invoke(Method.java:568)
в org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352)
в org.springframework.aop.framework.ReflectiveMethodInvoke.invokeJoinpoint(ReflectiveMethodInvocate.java:196)
в org.springframework .aop.framework.ReflectiveMethodInvocate.proceed(ReflectiveMethodInvocate.java:163)
в org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocate.proceed(CglibAopProxy.java:765)
в org.springframework.aop .interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115)
в org.springframework.util.concurrent.FutureUtils.lambda$toSupplier$0(FutureUtils.java:74)
в java.base /java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
в java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
в java .base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
... еще 1
2024-06-30T22:10:20.269+05:30 WARN 29876 - -- [nio-8080-exec-3].m.m.a.ExceptionHandlerExceptionResolver: решено [jakarta.servlet.ServletException: ошибка асинхронной обработки: java.lang.NoClassDefFoundError: CoffeeLandscape_7948ab1e94bc10a49f7da901b3157ad312c5d5a7dd059d90c5be01ce54 453e8a (неправильное название: CoffeeLandscape)]
@Async("reportGenTaskExecutor")
public CompletableFuture getPurchaseRequisitionPdf(HashMap parms, String activeDateFormat) throws Exception
{
JasperPrint jasperPrint = null;
try
(
Connection con = erpDatasource.getConnection();
InputStream reportStream = getClass().getResourceAsStream("/jasper-reports/mm/CoffeeLandscape.jasper")
)
{
parms.put("DB_CONNECTION", con);
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(reportStream);
jasperPrint = JasperFillManager.fillReport( jasperReport, parms, con);
}
catch (Exception e)
{
throw e;
}
return CompletableFuture.completedFuture(jasperPrint);
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... ting-issue
Проблема с печатью отчета Spring Boot Jasper [дубликат] ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение