在类 org.w3c.dom.Node 中找不到引用的方法 'java.lang.String lookupNamespaceURI(java.lang.String)'



我成功地使用proguard 4.5.1与proguard-maven-plugin(没有指定版本)在JDK 6平台上混淆我的web应用程序。

当我升级到JDK 7平台时,我不得不使用proguard-maven-plugin 2.1.0-SNAPSHOT升级到proguard 4.8,我在执行proguard时得到以下两个警告实例,导致构建失败:

 [proguard] Warning: mypackage.MyClass: can't find referenced method 'java.lang.String lookupNamespaceURI(java.lang.String)' in class org.w3c.dom.Node

我已经检查并确保…/jdk1.7.0/jre/lib/rt.jar被指定为库:

[proguard] Reading library jar [.../jdk1.7.0/jre/lib/rt.jar]

我得到以下警告,可能与我的问题有关:

[proguard] Note: duplicate definition of library class [org.w3c.dom.Node]

类似的问题张贴在这里,但它不能帮助我解决我的问题。

关于如何找出哪个库具有重复定义以及如何解决此问题的任何提示?

当我从项目中删除以下未使用的依赖项时,问题解决了:

 +- org.swinglabs:swingx-ws:jar:1.0:compile
|  |  +- xerces:xercesImpl:jar:2.8.1:compile
|  |  |  - xml-apis:xml-apis:jar:1.3.03:compile

我调试问题来源的方法如下。

  1. 我寻找第一个警告"重复定义库类[org.w3c.dom。
  2. 接下来我向后搜索"Reading library jar",看看哪个jar有重复的定义。它是xml-api -1.3.03.jar
  3. 然后,我在项目上运行maven的dependency:tree目标,看看是哪个jar导入了xml-api -1.3.03.jar依赖。它是swingx-ws jar。

swingx-ws jar是最近添加到项目中的,但幸好从未真正使用过。所以我要做的就是把它取出来。如果我真的必须使用这个jar,我怀疑我可以排除xml-api依赖,并且仍然使事情正常工作。

相关内容

  • 没有找到相关文章

最新更新