java - 指定jar内xsl文件的正确路径

标签 java xslt spring-boot

我有一个 XSL 文件位于包内的 src/main/java 文件夹中:

eu.deniss.report.view.xslt

我用它来获取文件位置:

String location = './src/main/java/eu/deniss/report/view/xslt/'

虽然从 IDE 运行时运行良好,但创建 .jar 时出现错误,无法找到该文件。

当我的应用程序打包为 .jar 时,调用此 xsl 文件的正确路径/方式是什么。此应用程序使用 Spring Boot。

编辑:

这是我加载 xslt 文件的方式:

String xslFileForProcessing = "someFile.xslt";

File xsltFile = new File(xslFileProperties.getLocation() + xslFileForProcessing);

TransformerFactory transformerFactory = new net.sf.saxon.TransformerFactoryImpl();
Source xsltSource = new StreamSource(xsltFile);
Transformer transformer = transformerFactory.newTransformer(xsltSource);

最佳答案

使用InputStream作为StreamSource实例的参数。您将能够轻松加载类路径中可用的资源:

final InputStream xsltStream = getClass().getResourceAsStream("/eu/deniss/report/view/xslt/someFile.xslt");

Source xsltSource = new StreamSource(xsltStream);

// for performance optimizations  
Templates cached = factory.newTemplates(xsltSource);
Transformer transformer = cached.newTransformer();

关于java - 指定jar内xsl文件的正确路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40927721/

相关文章:

html - xsl 聚合或子查询

java - 为什么要分解不包括 spring-boot-starter-logging 的日志文件?

java - 大字节数组使用的堆比预期多

java - 如何在不因 NPE 导致设备崩溃的情况下将变量从一个 Activity 传递到另一个 Activity ?

java - 运行 jar 文件时 JList 控件大小发生变化

java - Spring Boot 服务在空闲或服务请求过多后自动关闭

javascript - CORS 策略阻止 localhost

java - 如何将字符串的 ArrayList 写入文本文件?

xml - XPath child::* 与 child::node()

xslt - xsl :key key() function lookup greater than/less than