【问题标题】:can't find referenced method 'java.lang.String lookupNamespaceURI(java.lang.String)' in class org.w3c.dom.Node在类 org.w3c.dom.Node 中找不到引用的方法“java.lang.String lookupNamespaceURI(java.lang.String)”
【发布时间】:2013-04-17 16:54:26
【问题描述】:

我成功地使用 proguard 4.5.1 和 proguard-maven-plugin(未指定版本)在 JDK 6 平台上混淆我的 webapp。

当我升级到 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]

here 发布了一个类似的问题,但它并没有帮助我解决我的问题。

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

【问题讨论】:

    标签: proguard


    【解决方案1】:

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

     +- 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.Node] 的重复定义”,这是原始警告消息中提到的类。
    2. 接下来我向后搜索“Reading library jar”以查看哪个 jar 具有重复的定义。它是 xml-apis-1.3.03.jar
    3. 然后我在项目上运行了 maven 的 depenency:tree 目标,以查看哪个 jar 拉入了 xml-apis-1.3.03.jar 依赖项。这是swingx-ws jar。

    swingx-ws jar 最近添加到项目中,幸好从未实际使用过。所以我所要做的就是删除它。如果我真的必须使用那个 jar,我怀疑我可以排除 xml-apis 依赖项并且仍然可以正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-31
      • 2021-12-30
      • 1970-01-01
      • 1970-01-01
      • 2019-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多