我是乌斯金·贾斯珀报道。在develop中,它工作得很好。但在编译jar时,系统会抛出“src/main/resources/reports/myJasperReport.jxml”的异常并将其FileNotFound
当我探索JAR时,我发现报告的URL是"/BOOT-INF/class/resport/myJasperReport.jxml"
我发现这个指向jar内文件的链接不可见,但并没有解决我的问题。
你能帮帮我吗?
@Slf4j
@Service
public class ReportService {
private static final String REPORTS_BASE_PATH = "src/main/resources/reports/";
public ByteArrayInputStream exportReport(
String reportFileName,
Integer idCC,
Map<String,Object> parameters
) throws Exception {
Connection connection = CustomEntityManagerFactoryPostgresImpl
.getInstance()
.getConnection(idCC);
File file = ResourceUtils.getFile(REPORTS_BASE_PATH + reportFileName);
JasperReport jasperReport = JasperCompileManager.compileReport(file.getAbsolutePath());
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, connection);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
JasperExportManager.exportReportToPdfStream(jasperPrint, outputStream);
return new ByteArrayInputStream(outputStream.toByteArray());
}
}
将classpath:
前缀添加到路径中。并考虑<代码>资源< /COD>文件夹为根目录。
ResourceUtils.getFile("classpath:reports/" + reportFileName);
UPD:事实上,你根本不需要文件。尝试以流形式获取资源:
InputStream report = ReportService.class.getClassLoader().getResourceAsStream("reports/" + reportFileName);
JasperReport jasperReport = JasperCompileManager.compileReport(report);
在尝试学习如何使用storm时。我决定编译我自己的著名WordCount拓扑实例,看看它是如何实现的。代码与示例完全相同。(https://github.com/apache/storm/blob/master/examples/storm-starter/src/jvm/org/apache/storm/starter/WordCountTopology.java) 然而,每当我尝试运行jar时
我创建了一个java应用程序来从Gmail地址读取。当我从IDE(Intellij)执行脚本时,脚本运行完美。但是通过生成jar文件并尝试执行jar: 我有以下错误: 这是我的POM文件:
我需要com.sun.tools jar作为编译依赖项,所以我只是将它复制到Intellij项目中的libs文件夹中。不过,我正在尝试使用Gradle。我只需要它作为我的一个模块的依赖项。我该怎么做。我当前在我的模块jar任务中有以下内容: 我还在模块的“依赖项”闭包中尝试了这一点: 在我尝试做这件事之前,它一直运作得很好。 编辑:这是一个注释处理器,所以我试图将它包含在我的模块jar构建中,而不
Spring boot使安装一个简单的应用程序变得非常容易。但实际上,我需要更长的时间才能获得一个可以上传到远程服务器的jar文件。我使用IntelliJ,没有命令行,我使用gradle。应用程序正在以某种方式运行Intellij。但是创建的文件在哪里?我从Bootjar买的罐子在哪里? 更新:添加了项目结构图片: 更新2:文件夹结构:
问题内容: Weblogic 10.3.1.0正在使用com.bea.core.apache.commons.net_1.0.0.0_1-4-1.jar …我想从我的代码中使用commons-net-2.0.jar。 如何强制它仅在我的代码中使用较新的JAR? 问题答案: 我想从我的代码中使用commons-net-2.0.jar。 WebLogic使用 父类加载器优先策略 ,您基本上可以通过两种
问题内容: 我需要在Matlab中运行Java .jar文件。 我们将文件称为MyJar.jar,如果有帮助,我正在运行Java 1.8.0_121-b13。 我尝试了不同的解决方案,并收到了这些相应的错误 我已经设置了javaclasspath:C:\ My \ Java \ Class \ Path \ To \ MyJar.jar(即使它没有任何帮助) 我什至已经准备好编辑classpath