处理XSLT转换期间的WrappedRuntimeException

时间:2010-03-19 17:58:42

标签: java xslt

我正在使用此代码生成内容文件。

try {
        StreamResult result = new StreamResult();
        TransformerFactory tf = TransformerFactory.newInstance();
        Templates templ =  tf.newTemplates(xsltSource);
        Transformer transf = templ.newTransformer();
        for (String item: groups){
            item = item.replaceAll(" ", "-").toLowerCase();
            result.setOutputStream(new FileOutputStream(path+item+".html"));
            transf.clearParameters();
            transf.setParameter("group", item);
            transf.transform(xmlSource, result);
        }
    } catch (TransformerConfigurationException e) {
    throw new SinkException(e.getMessage());
    } catch (TransformerException e) {
    throw new SinkException(e.getMessage());
    }

但是在第二次迭代中我有一个例外

ERROR: javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Read error

不明白是什么原因?

1 个答案:

答案 0 :(得分:1)

非常感谢您的帮助。错误是未正确关闭源资源。 是:

Source xmlSource = new StreamSource(new FileInputStream(path+Constants.MANIFEST_FILE_NAME));

修正:

Source xmlSource = new StreamSource(path+Constants.MANIFEST_FILE_NAME);