オブジェクトを xml 文字列に変換し、そこから pdf を作成するユーティリティ クラスがあります。
クラスは正常に機能していましたが、最近、Tomcat で継続的デプロイを使用し始めました (つまり、app.war が app##00010.war としてデプロイされ、新しいバージョンのアプリが 1 日に 2 回アップロードされます)。 DocumentBuilder に関する大きな問題。
私のユーティリティ クラスは、クラス パス (DTD、fop conf、xsl styesheet など) から複数のファイルをロードする必要があります。フル パス [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">"
この問題を解決する方法はありますか?