GWT GWTTestCase“无法识别功能'http://apache.org/xml/features/nonvalidating/load-external-dtd'。”

时间:2019-06-03 11:00:43

标签: gwt gwttestcase

我正在尝试在IntelliJ中运行GWTTestCase。

添加GWT构面并指向gwt-2.8.2的安装后,我运行测试并得到:

   [ERROR] Failure while parsing XML
org.xml.sax.SAXNotRecognizedException: Feature 'http://apache.org/xml/features/nonvalidating/load-external-dtd' is not recognized.
    at org.apache.xerces.parsers.AbstractSAXParser.setFeature(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.setFeature0(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl.setFeatures(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParserImpl(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserFactoryImpl.setFeature(Unknown Source)
    at com.google.gwt.dev.util.xml.ReflectiveParser.createNewSaxParser(ReflectiveParser.java:61)

根据互联网,通过在类路径中添加或删除xercesImpl似乎可以解决类似的故障。就我而言,无论xercesImpl-2.11.0.jar是否在类路径上(对于我来说,都是通过常春藤),都可以得到此信息。在调试中,我发现它是从GWT安装位置的gwt-dev.jar中加载SAXParserFactoryImpl等,并为GWT方面配置的。有趣的是,常春藤gwt-dev.jar没有这个。用xerces替换gwt-dev.jar而不用让我克服这个异常,但是现在HtmlUnit失败了,因为它确实需要xerces:

Exception in thread "htmlUnit client thread" java.lang.NoClassDefFoundError: org/apache/xerces/xni/XNIException
    at com.gargoylesoftware.htmlunit.DefaultPageCreator.createHtmlPage(DefaultPageCreator.java:271)

有什么想法可以使这项工作成功吗?

注意:我可以使用ant版本运行测试,但是运行整个套件非常慢。

0 个答案:

没有答案