我有一个实用程序类,它将一个对象转换为一个 xml 字符串,然后从中构建一个 pdf。
该课程运行良好,但我最近开始在 Tomcat 上使用持续部署(即 app.war 现在部署为 app##00010.war 并且该应用程序的新版本每天上传两次),从那时起我有了一些DocumentBuilder 的大量问题。
我的实用程序类必须从类路径(DTD、fop conf、xsl 样式表等)加载几个文件。我使用完整路径 [path start]/Tomcat 7.0/webapps/ app##0010 /[path to file] 加载文件,但我得到 FileNotFoundException [path start]\Tomcat 7.0\webapps\ app(系统找不到指定的文件)。
因此 DocumentBuilder 似乎忽略了我给他的完整路径。
这是我用来将 xml 字符串转换为 xml 文件的方法:
public static Document stringToXml(String xmlSource) throws SAXException,ParserConfigurationException,
MalformedURLException,IOException{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder builder=factory.newDocumentBuilder();
return builder.parse(new InputSource(new StringReader(xmlSource)));
}
xmlSource 类似于"<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE doc SYSTEM "file:///[path start]/Tomcat 7.0/webapps/app##0010/ [...] /pdf.dtd">"
知道如何解决这个问题吗?