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. KubeSphere 3.2.1 正式发布,多项功能优化来袭!

    KubeSphere 从诞生第一天起就 100% 开源,并以社区的方式成长,在各位社区小伙伴的共同努力下,KubeSphere 迅速走向全球,成为全世界最受欢迎的开源容器平台之一. 经过 3 年的发展 ...

  2. spring注解@PostConstruct

    该注解可以实现在运行工程时,自动运行该注解下的方法: @PostConstruct是java5的时候引入的注解,指的是在项目启动的时候执行这个方法,也可以理解为在spring容器启动的时候执行,可作为 ...

  3. NOIP2024模拟赛13:拆开未来

    NOIP2024模拟赛13:拆开未来 写在前面:进制哈希的P不要用998244353会被卡!用131.注意取模为负数的情况! C-重复 一句话题意:给定字符串 \(S\), 问 \(S\) 的所有子串 ...

  4. 解决DDD最大难题-如何划分领域

    本文书接上回<反DDD模式之"复用">,关注公众号(老肖想当外语大佬)获取信息: 最新文章更新: DDD框架源码(.NET.Java双平台): 加群畅聊,建模分析.技术 ...

  5. RAC:无训练持续扩展,基于检索的目标检测器 | ECCV'24

    来源:晓飞的算法工程笔记 公众号,转载请注明出处 论文: Online Learning via Memory: Retrieval-Augmented Detector Adaptation 论文地 ...

  6. 开源 - Ideal库 - 特殊时间扩展方法(三)

    书接上回,我们继续来分享一些关于特殊时间获取的常用扩展方法. 01.获取当天的开始时间 当天的开始时间指00:00:00时刻,因此只需要获取DateTime的Date属性只获取时间即可,具体代码如下: ...

  7. 2023NOIP A层联测31 T4 民主投票

    2023NOIP A层联测31 T4 民主投票 思维好题. 思路 首先可以设 \(s\) 每个人最多获得的票数,一开始所有点都把自己的票投给自己父亲. 如果一个点的票数超过 \(s\) 了,那么这个点 ...

  8. VTable-Gantt:功能强大、性能优异的开源甘特图组件

    甘特图的基本概念 在项目管理中,甘特图是一种常用的工具,用于展示项目任务的时间安排和进度. 我们将甘特图拆分成以下几个部分: 左侧任务列表:显示项目的任务列表,通常在图的左侧. 顶部时间轴:显示项目的 ...

  9. VAE变分自编码器Keras实现

    变分自编码器(variational autoencoder, VAE)是一种生成模型,训练模型分为编码器和解码器两部分. 编码器将输入样本映射为某个低维分布,这个低维分布通常是不同维度之间相互独立的 ...

  10. vivo 企业云盘服务端实现简介

    作者:来自 vivo 互联网存储团队- Cheng Zhi 本文将介绍企业云盘的基本功能以及服务端实现. 一.背景 vivo 企业云盘是一个企业级文件数据管理服务,解决办公数据的存储.共享.审计等文件 ...