关于spring:\\”Error loading plugin manager: Tomcat Grails Plugin\\” in Grails 2.3 Database Migration | 珊瑚贝

“Error loading plugin manager: TomcatGrailsPlugin” on Grails 2.3 Database Migration


我使用 Grails 2.3 和 Grails 数据库迁移插件 (1.3.6)。

当我执行 grails dbm-update 时,我收到以下错误。我该如何解决这个错误?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 Error Error loading plugin manager: TomcatGrailsPlugin (NOTE: Stack trace has been filtered. Use –verbose to see entire trace.)
java.lang.ClassNotFoundException: TomcatGrailsPlugin
    at _GrailsBootstrap_groovy$_run_closure2.doCall(_GrailsBootstrap_groovy:40)
    at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:133)
    at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16_closure18.doCall(GantBinding.groovy:185)
    at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16_closure18.doCall(GantBinding.groovy)
    at org.codehaus.gant.GantBinding.withTargetEvent(GantBinding.groovy:90)
    at org.codehaus.gant.GantBinding.this$4$withTargetEvent(GantBinding.groovy)
    at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16.doCall(GantBinding.groovy:185)
    at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16.doCall(GantBinding.groovy)
    at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:133)
    at _GrailsBootstrap_groovy$_run_closure6.doCall(_GrailsBootstrap_groovy:64)
    at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:133)
    at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16_closure18.doCall(GantBinding.groovy:185)
    at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16_closure18.doCall(GantBinding.groovy)
    at org.codehaus.gant.GantBinding.withTargetEvent(GantBinding.groovy:90)
    at org.codehaus.gant.GantBinding.this$4$withTargetEvent(GantBinding.groovy)
    at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16.doCall(GantBinding.groovy:185)
    at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16.doCall(GantBinding.groovy)
    at org.codehaus.gant.GantMetaClass.processClosure(GantMetaClass.java:81)
    at org.codehaus.gant.GantMetaClass.processArgument(GantMetaClass.java:95)
    at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:128)
    at _DatabaseMigrationCommon_groovy$_run_closure1.doCall(_DatabaseMigrationCommon_groovy:25)
    at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:133)
    at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16_closure18.doCall(GantBinding.groovy:185)
    at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16_closure18.doCall(GantBinding.groovy)
    at org.codehaus.gant.GantBinding.withTargetEvent(GantBinding.groovy:90)
    at org.codehaus.gant.GantBinding.this$4$withTargetEvent(GantBinding.groovy)
    at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16.doCall(GantBinding.groovy:185)
    at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16.doCall(GantBinding.groovy)
    at org.codehaus.gant.GantMetaClass.processClosure(GantMetaClass.java:81)
    at org.codehaus.gant.GantMetaClass.processArgument(GantMetaClass.java:95)
    at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:128)
    at DbmUpdate$_run_closure1.doCall(DbmUpdate:23)
    at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:133)
    at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16_closure18.doCall(GantBinding.groovy:185)
    at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16_closure18.doCall(GantBinding.groovy)
    at org.codehaus.gant.GantBinding.withTargetEvent(GantBinding.groovy:90)
    at org.codehaus.gant.GantBinding.this$4$withTargetEvent(GantBinding.groovy)
    at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16.doCall(GantBinding.groovy:185)
    at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16.doCall(GantBinding.groovy)
    at gant.Gant$_dispatch_closure5.doCall(Gant.groovy:381)
    at gant.Gant$_dispatch_closure7.doCall(Gant.groovy:415)
    at gant.Gant$_dispatch_closure7.doCall(Gant.groovy)
    at gant.Gant.withBuildListeners(Gant.groovy:427)
    at gant.Gant.this$2$withBuildListeners(Gant.groovy)
    at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source)
    at gant.Gant.dispatch(Gant.groovy:415)
    at gant.Gant.this$2$dispatch(Gant.groovy)
    at gant.Gant.invokeMethod(Gant.groovy)
    at gant.Gant.executeTargets(Gant.groovy:591)
    at gant.Gant.executeTargets(Gant.groovy:590)
| Error Error loading plugin manager: TomcatGrailsPlugin
  • 最近记录了相同的缺陷。
  • @dmahapatro 你知道如何解决这个问题吗?
  • @confile 我在使用 db-migration 插件 1.3.5 的 grails 2.3 中面临同样的问题
  • 在 2.3.7 中测试,仍然出现此错误。


这是一个超级烦人的错误。我的应用程序依赖于使用 run-script 运行脚本,我得到了相同的行为。这是我作为解决方法所做的:

1
2
3
4
5
6
7
plugins {
    …
    // grails 2.3.2 and tomcat 7.0.42 cause scripts to not work :( Pass -DnoTomcat=true in the script args to fix this
    if (System.getProperty(“noTomcat”) == null) {
        build”:tomcat:7.0.42″
    }
}

然后在运行脚本时:

1
 grails -DnoTomcat=true run-script scripts/MyScript.groovy

确实很烦人,但至少您可以在等待修复时使用所有其他最新功能。

  • 我永远无法让 run-script 使用这种方法。如果我做了一个 grails 编译,那么 grails MyScript 它使用这种方法工作。如果我使用运行脚本,它会被 MissingPropertyException includeTargets 炸毁。
  • 我用 2.3.7 进行了测试,这个解决方法正在工作。
  • 嗨,我发现同样的问题。你知道是否有人已经为此提出了一个错误?干杯


尝试将 buildConfig.groovy 中的 tomcat 构建类型更改为编译而不是 build:

compile ‘:tomcat:7.0.42’


因此,如果您发现此问题是因为您的脚本被 2.3.x 破坏了,那么这就是我发现的一般问题。我仍然不能使用 run-script,因为它总是因可怕的 TomcatPlugin 缺失问题而失败(我怀疑这意味着 run-script 总是试图引导 grails 而不管)。但是,我可以让脚本编译并作为任务运行。我的脚本总是会失败,因为我使用以下方法引导 grails:

1
2
3
4
5
6
7
includeTargets << grailsScript(“_GrailsInit”)
includeTargets << grailsScript(“_GrailsBootstrap”)
includeTargets << grailsScript(“_GrailsClasspath”)

target(main:”Generate a secret key to be used with HMAC and AES algorithms”) {
   depends(bootstrap)  // this is problem
}

所有这些都来自说要这样做的文档。但是,depends(bootstrap) 在 2.3.x 中被严重破坏,这是整个 fork 功能崩溃的一部分(是的,它没有经过深思熟虑)。

因为我很幸运,而且我的脚本实际上不必完全引导 grails,所以我可以执行以下操作,并且效果也很好:

1
2
3
4
5
6
7
includeTargets << grailsScript(“_GrailsInit”)
includeTargets << grailsScript(“_GrailsBootstrap”)
includeTargets << grailsScript(“_GrailsClasspath”)

target(main:”Generate a secret key to be used with HMAC and AES algorithms”) {
   depends(parseArguments)  // this is not problem
}

中提琴又开始工作了。工作得很好。以下是有效与无效的对比:

1
2
$ grails GenerateSecretKey              // yay works
$ grails run-script GenerateSecretKey   // doesn’t work

这里有一些关于这个问题的 Jira 问题,所以你会知道什么时候所有这些都是错误的 ;-)

  • http://jira.grails.org/browse/GRAILS-11216
  • http://jira.grails.org/browse/GRAILS-11219

我使用的是 Grails 2.3.4,但这里是我解决此问题的方法:

  • 升级到数据库迁移 1.3.8
  • 清除了我的 scriptCache 文件夹
  • 执行的刷新依赖
  • 重试数据库迁移脚本,问题解决。


    只是稍微澄清一下,上面 chubbsondubs 提到过,但我在第一次阅读时错过了……

    通常对此的简单回答是:

    1
    grails run-script scripts/DoSomething

    就这样做吧:

    1
    grails do-something


    • 我相信这被标记为与该问题上已有答案的重复……不确定我们应该如何处理这个问题,但我建议删除。
    • 很抱歉澄清 – 就我而言,除了上述步骤之外,我不需要做任何事情来解决问题。
    • 一个更好(更完整)的答案是在 stackoverflow.com/questions/23745917/…


    我在升级到 2.3.2 时遇到了同样的问题

    我用标志 -DnoTomcat

    尝试了上述方法

    它仍然无法正常工作。然后我意识到有一些就地插件也引用了 tomcat。这在某种程度上似乎是遗留问题,因为使用 grails 2.3.2 新创建的插件没有对 tomcat 的引用。所以我只是从插件中删除了所有引用,并将标志开关保留在我的主应用程序中。


    来源:https://www.codenong.com/18817539/

    微信公众号
    手机浏览(小程序)

    Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

    Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

    Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_9672.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
    0
    分享到:
    没有账号? 忘记密码?