我有以下代码将xml文档转换为html页面。这没什么特别的,只是我使用saxon工厂进行转换,因为我需要XSLT 2.0中的一个函数。
try {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
StreamResult output = new StreamResult(bos);
StreamSource input = new StreamSource(new FileReader(TransformationTest.class.getResource(sourceFileName).getFile()));
StreamSource stylesheet = new StreamSource(TransformationTest.class.getResourceAsStream(STYLESHEET));
Transformer tr = TransformerFactory.newInstance("net.sf.saxon.TransformerFactoryImpl", null).newTransformer(stylesheet);
tr.transform(input, output);
return bos.toString();
} catch (TransformerException e) {
throw new RuntimeException("XSL-Transform: Error while transforming the document.");
} catch (FileNotFoundException e) {
throw new RuntimeException("XSL-Transform: Error while reading the source file.");
}
代码在单独的项目中工作正常,并将saxon添加为依赖项。我尝试了不同的输入,每次我得到正确的输出。
现在我尝试将它添加到一个更大的项目中,该项目在类路径中有许多其他库,突然代码停止工作。输出只是空白,没有异常,没有错误消息,只是一个空白字符串将被返回。我不是变压器中发生的事情的专家,所以我需要一些帮助。究竟是什么原因导致这种行为,我该如何解决?