我有一个实用程序类,它将Object转换为xml String,然后从中构建pdf。
该类工作正常但我最近开始在Tomcat上使用持续部署(即app.war现在部署为app ## 00010.war并且该应用程序的新版本每天上载两次)从那时起我我在使用DocumentBuilder时遇到了一些大问题。
我的实用程序类必须从类路径(DTD,fop conf,xsl styesheet等)加载多个文件。我使用完整路径[路径启动] / Tomcat 7.0 / webapps / app ## 0010 / [文件路径]来加载文件,但我得到一个FileNotFoundException [路径启动] \ Tomcat 7.0 \ webapps \ app (系统找不到指定的文件)。
因此,DocumentBuilder似乎忽略了我给他的完整路径。
这是我用来将xml String转换为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">"
如何解决这个问题?
答案 0 :(得分:0)
好的我使用自定义实体解析器修复了它,如以下帖子所示:Parsing an XML file with a DTD schema on a relative path