java - Wildfly war部署获取资源文件的路径

标签 java wildfly

我有一个网络应用程序,它使用外部工具来创建报告。该工具需要我想要从中生成报告的模板的绝对路径。

我将模板部署为我的 war 文件中包含的资源。

当使用爆炸 war 时,我可以做这样的事情,效果很好:

String path = Thread.currentThread().getContextClassLoader().getResource(resourceFile).getPath();
File f = new File(path);
String absoluteFileName = f.getAbsolutePath();

使用未爆炸的 war 这是行不通的。有机会做这样的事情吗?

我不需要资源的内容,所以 getResourceAsStream(..) 不是我要找的。

最佳答案

您必须使用getResourceAsStream()并将内容写入已知位置。您可以使用类似以下内容的方法将部署中的模板复制到临时文件中。

final InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream(resourceFile);
final Path f = Files.createTempFile("template", ".txt");
Files.copy(in, f);
final String absoluteFileName = f.toAbsolutePath().toString();

如果您有一组已知模板,则可以使用 @javax.ejb.Singleton @javax.ejb.Startup EJB。

关于java - Wildfly war部署获取资源文件的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39889390/

相关文章:

jakarta-ee - 使用 HornetQ (JBoss) 在 docker 容器上公开的 JMS 所需的端口

java - Netbeans 配置文件 Wildfly 选定的方法

Java string .length() X 不适合 DB2 varchar(X)

java - Jogl 2.2.1 Windows 工作教程?

java - 在 Wildfly 配置 GZip

java - Hibernate 查询缓存处于 Activity 状态时 Wildfly 无法启动

jakarta-ee - Swagger 2.x JaxrsAnnotationScanner 找不到位于 ear 中的资源类

java - 使用带有java代码的kafka

java - 如果我在 Hibernate 中使用 JPA,我的项目应该有哪些依赖项?

java - Java Web Start 中可能存在的错误