1 问题

编译WorldWindJavav2.1.0中的ApplicationTemplate.java文件时有时报出如下错误:

Exception in thread "main" java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V

at gov.nasa.worldwind.util.WWXML.createDocumentBuilder(WWXML.java:61)
at gov.nasa.worldwind.util.WWXML.openDocumentStream(WWXML.java:236)
at gov.nasa.worldwind.util.WWXML.openDocumentStream(WWXML.java:223)
at gov.nasa.worldwind.util.WWXML.openDocumentFile(WWXML.java:175)
at gov.nasa.worldwind.util.WWXML.openDocument(WWXML.java:148)
at gov.nasa.worldwind.Configuration.loadConfigDoc(Configuration.java:131)
at gov.nasa.worldwind.Configuration.<init>(Configuration.java:108)
at gov.nasa.worldwind.Configuration.<clinit>(Configuration.java:76)
at gov.nasa.worldwind.awt.WorldWindowGLCanvas.<init>(WorldWindowGLCanvas.java:64)
at gov.nasa.worldwindx.examples.ApplicationTemplate$AppPanel.createWorldWindow(ApplicationTemplate.java:88)
at gov.nasa.worldwindx.examples.ApplicationTemplate$AppPanel.<init>(ApplicationTemplate.java:51)
at gov.nasa.worldwindx.examples.ApplicationTemplate$AppFrame.createAppPanel(ApplicationTemplate.java:399)
at gov.nasa.worldwindx.examples.ApplicationTemplate$AppFrame.initialize(ApplicationTemplate.java:336)
at gov.nasa.worldwindx.examples.ApplicationTemplate$AppFrame.<init>(ApplicationTemplate.java:319)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at gov.nasa.worldwindx.examples.ApplicationTemplate.start(ApplicationTemplate.java:538)
at gov.nasa.worldwindx.examples.ApplicationTemplate.main(ApplicationTemplate.java:563)

2 原因

不同jar包的多xml解析器冲突!!!

3 解决

解决方法:在使用DocumentBuilderFactory前加入这一行代码:

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

完整代码如下:

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);
}
}

参考链接:解决javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V异常

编译WorldWindJavav2.1.0中的ApplicationTemplate.java文件时有时报出“Exception in thread "main" java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V”错误的解决办法的更多相关文章

  1. 在dos中运行java程序,若出现Exception in thread “main" java.lang.NoClassDefFoundError

    在dos中运行java程序,若出现Exception in thread “main" java.lang.NoClassDefFoundError,可以检查一下几项: 环境变量配置: 注意 ...

  2. 运行java程序的时候出现Exception in thread "main" java.lang.UnsupportedClassVersionError:

    1 Exception in thread "main" java.lang.UnsupportedClassVersionError: com/test/inherited/In ...

  3. 使用IntelliJ工具打包kotlin为bat文件运行报错 Exception in thread "main" java.lang.NoClassDefFoundError

    Exception in thread "main" java.lang.NoClassDefFoundError 这个很有可能是因为idea里的java版本与电脑上的java环境 ...

  4. Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 0 解决方法: 要对切割字符进行转义\\

    使用str.split("[",15)时,出现Exception in thread "main" java.util.regex.PatternSyntaxE ...

  5. Exception in thread "main" java.net.SocketTimeoutException: connect timed ou错误处理

    今天做了一个Jsoup解析网站的项目,使用Jsoup.connect(url).get()连接某网站时偶尔会出现java.net.SocketTimeoutException:Read timed o ...

  6. 编译运行java程序出现Exception in thread "main" java.lang.UnsupportedClassVersionError: M : Unsupported major.minor version 51.0

    用javac编译了一个M.java文件, 然后用java M执行,可是出现了下面这个错误. Exception in thread "main" java.lang.Unsuppo ...

  7. Exception in thread "main" java.lang.UnsupportedClassVersionError: * : Unsupported major.minor version 52.0 解决办法

    Exception in thread "main" java.lang.UnsupportedClassVersionError: * : Unsupported major.m ...

  8. Exception in thread "main" java.lang.UnsupportedClassVersionError: com/google/common/base/Function : Unsupported major.minor version 52.0的解决办法(图文详解)

    不多说,直接上干货! 问题详情 Exception in thread "main" java.lang.UnsupportedClassVersionError: com/goo ...

  9. Java中调用c/c++语言出现Exception in thread "main" java.lang.UnsatisfiedLinkError: Test.testPrint(Ljava/lang/String;)V...错误

    错误: Exception in thread "main" java.lang.UnsatisfiedLinkError: Test.testPrint(Ljava/lang/S ...

  10. idea中使用scala运行spark出现Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class

    idea中使用scala运行spark出现: Exception in thread "main" java.lang.NoClassDefFoundError: scala/co ...

随机推荐

  1. activiti教程

    一.工作流介绍 1.1 概念 工作流(Workflow),就是通过计算机对业务流程自动化执行管理.它主要解决的是"使在多个参与者之间按照某种预定义的规则自动进行传递文档.信息或任务的过程,从 ...

  2. C语言数据类型和变量

    目录 1.数据类型介绍 1.1字符型 1.2整形 1.3浮点型 1.4布尔类型 1.5各种数据类型长度 1.5.1sizeof操作符 1.5.2数据类型长度 1.5.3 sizeof中表达式不计算 2 ...

  3. python操作pptx设置title字体大小插入全屏图片A4尺寸实例一枚

    pip install python-pptx 安装好pptx,设置标题最大的作用是ppt里面的摘要视图显示摘要文字 参考:https://python-pptx.readthedocs.io/en/ ...

  4. UIAbility组件生命周期

    当用户打开.切换和返回到对应应用时,应用中的UIAbility实例会在其生命周期的不同状态之间转换.UIAbility类提供了一系列回调,通过这些回调可以知道当前UIAbility实例的某个状态发生改 ...

  5. Python 抓取猫眼电影排行

    import json import re import requests from requests.exceptions import RequestException import time # ...

  6. npm 发包命令

    npm publish 此命令发布latest版本 npm publish --tag=alpha 发布alpha版本(测试版本)       紧急回退包方案: 分享一下bnpm给的处理方案 如果因为 ...

  7. Linux中find命令详解

    find命令 find 命令用于查找文件或目录 语法格式: find ./ -type f -name '文件名' 参数依次是:find命令,这里的./指的是当前路径,-type是选择文件类型,文件类 ...

  8. Spring MVC 3.2 技术预览(一):Servlet 3介绍,异步支持

    原文地址:http://blog.springsource.org/2012/05/06/spring-mvc-3-2-preview-introducing-servlet-3-async-supp ...

  9. 简单端口映射、转发、重定向工具之Rinetd

    ◆一.概述 Rinetd是为在一个Unix和Linux操作系统中为重定向传输控制协议(TCP)连接的一个工具.将 TCP 连接从一个 IP 地址和端口重定向到另一个.它处理文件中/etc/rinetd ...

  10. Mybatis【4】-- 关于Mybatis别名定义

    代码直接放在Github仓库[https://github.com/Damaer/Mybatis-Learning ],可直接运行,就不占篇幅了. 我们下面需要改进的是别名,也趁这个机会介绍一下别名的 ...