zoukankan      html  css  js  c++  java
  • 在Eclipse配置并编译worldwind java2.1.0源码,选中Src目录下gov.nasa.worldwindx.examples包下ApplicationTemplate.java类文件run时提示“javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V”异常的解决办法

    问题现象:

    在Eclipse配置并编译worldwind java2.1.0源码,选中Src目录下gov.nasa.worldwindx.examples包下ApplicationTemplate.java类文件run时提示“javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V”异常。

    解决办法:

    1、定位到报错的方法为WWXML.java文件中的createDocumentBuilder方法:

    public static DocumentBuilder createDocumentBuilder(boolean isNamespaceAware)
        {
            DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
            docBuilderFactory.setNamespaceAware(isNamespaceAware);
            if (Configuration.getJavaVersion() >= 1.6)
            {
                try
                {
                    docBuilderFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd",
                        false);
                }
                catch (ParserConfigurationException e)
                {   // Note it and continue on. Some Java5 parsers don't support the feature.
                    String message = Logging.getMessage("XML.NonvalidatingNotSupported");
                    Logging.logger().finest(message);
                }
            }
    
            try
            {
                return docBuilderFactory.newDocumentBuilder();
            }
            catch (ParserConfigurationException e)
            {
                String message = Logging.getMessage("XML.ParserConfigurationException");
                Logging.logger().finest(message);
                throw new WWRuntimeException(e);
            }
        }

    2、在该方法中标注黄色的一句代码DocumentBuilderFactory.newInstance()前面使用前加入如下一行代码:

    System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");

    3、完整代码如下:

    public static DocumentBuilder createDocumentBuilder(boolean isNamespaceAware)
        {
            System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
            DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
    
            docBuilderFactory.setNamespaceAware(isNamespaceAware);
    
            if (Configuration.getJavaVersion() >= 1.6)
            {
                try
                {
                    docBuilderFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd",
                        false);
                }
                catch (ParserConfigurationException e)
                {   // Note it and continue on. Some Java5 parsers don't support the feature.
                    String message = Logging.getMessage("XML.NonvalidatingNotSupported");
                    Logging.logger().finest(message);
                }
            }
    
            try
            {
                return docBuilderFactory.newDocumentBuilder();
            }
            catch (ParserConfigurationException e)
            {
                String message = Logging.getMessage("XML.ParserConfigurationException");
                Logging.logger().finest(message);
                throw new WWRuntimeException(e);
            }
        }

    参考链接:

    1、解决javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V异常

    2、Exception in thread "main" java.lang.AbstractMethodError: org.apache.crimson.tree.ElementNode.getTextContent()Ljava/lang/String;

  • 相关阅读:
    推荐一些socket工具,TCP、UDP调试、抓包工具
    IE DIV背景透明,点击事件不响应解决方案
    亚马逊的高管和员工们经常阅读的书目
    今日技术文摘 (2013
    Discuz! X3安装第三方主题出现:对不起,您安装的不是正版应用..的解决方法
    chrome浏览器直接编辑源码功能的开通办法
    书单
    editplus教程
    如何让windows更高效?
    conEmu的使用笔记
  • 原文地址:https://www.cnblogs.com/rainbow70626/p/12142674.html
Copyright © 2011-2022 走看看