出于安全原因,我添加了以下语句:
transformerFactory.setFeature("http://javax.xml.XMLConstants/property/accessExternalDTD", false);
Run Code Online (Sandbox Code Playgroud)
但是,我在日志文件中收到以下错误:
25-Nov-2014 09:35:48.802严重[http-nio-8080-exec-14] CIMObject.CIMObjectCollectDataHANA.setRunningXML TransformerConfigurationException setRunningXMLHANA:javax.xml.transform.TransformerConfigurationException:无法设置功能' http://javax.xml .TransformerFactory上的.XMLConstants / property / accessExternalDTD '。
有人遇到相同的错误并能够解决该错误?
似乎出现的问题是该功能未在中定义com/sun/org/apache/xalan/internal/utils/FeatureManager.java。
如果您使用的是Java 8,则只需执行以下操作:
transformerFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
这是因为com/sun/org/apache/xalan/internal/xsltctrax/TransformerFactoryImpl.java:
if (value && XalanConstants.IS_JDK8_OR_ABOVE) {
_xmlSecurityPropertyMgr.setValue(
Property.ACCESS_EXTERNAL_DTD,
State.FSP,
XalanConstants.EXTERNAL_ACCESS_DEFAULT_FSP
); // ACCESS_EXTERNAL_DTD is disabled by setting to the default value
}
Run Code Online (Sandbox Code Playgroud)