【问题标题】:GGTS can't run grails unit tests: java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversalGGTS 无法运行 grails 单元测试:java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal
【发布时间】:2015-02-04 21:32:31
【问题描述】:

我最近从 Java 6 升级到 Java 7,并将 Grails 版本相应地更改为 2.3.8。一切都可以从命令行编译并运行良好。

但我发现我的 GGTS (3.5.1.RELEASE) 版本无法在编辑器中运行单元测试。我得到错误: java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal

我已经尝试从头开始完全导入项目 - 不开心。

该问题仅适用于 GGTS 中特定于 Grails 的测试,而不是当我从命令行运行它们时。它发生在 Grails 初始化 registerBeans() 调用期间。这是由 @TestFor 注释引入的(没有注释,没问题)。

查看具有相同错误的其他错误报告,我发现这似乎与 xml-apis 的版​​本有关。我试过把 编译('xml-apis:xml-apis:2.0.2') 在 BuildConfig.groovy 的 grails.project.dependency.resolution ... dependencies 部分中,但它没有效果。

有什么建议我可以做的吗?

  • 查尔斯

【问题讨论】:

  • 你应该完全排除xml-apis,从Java 5开始就没有必要了,而且往往会导致比它解决的问题更多的问题。
  • 我可以相信。但是该项目根本没有提及它。所以我还是卡住了。

标签: unit-testing grails groovy


【解决方案1】:

我的 Grails 大师建议简单地迁移到 IntelliJ - 一种不错的方法,但成本稍高。

但令我沮丧的是,我在那个环境中也发现了一个不同但相似的错误。我意识到 IntelliJ 会为项目导入 Eclipse 编辑器设置。

因此解决方案是删除项目的所有特定于编辑器的文件,并仅从 Groovy/Grails 源重新生成它。

  • 查尔斯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-18
    • 2012-05-01
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    • 2018-01-25
    相关资源
    最近更新 更多