【问题标题】:Upgraded Grails project from 2.2.1 to 2.3.6 ; run-app fails with Tomcat, won't debug with Jetty将 Grails 项目从 2.2.1 升级到 2.3.6;使用 Tomcat 运行应用程序失败,无法使用 Jetty 进行调试
【发布时间】:2014-03-13 23:31:01
【问题描述】:

一个在 Grails 2.2.1 下运行并且我刚刚升级到 2.3.6(使用 GGTS 3.4 作为我们的 IDE)的项目在“运行应用程序”方面遇到了一个非常奇怪的问题。

如果我使用使用 tomcat 进行开发运行的 tomcat 插件,grails run-app 命令似乎启动 tomcat,但无法启动应用程序。任何发送到 localhost:8080 的请求都会返回 404。

如果我使用 Jetty 插件,它使用 jetty 进行开发运行,grails run-app 命令会正常启动,但永远不会连接到 IDE 中的调试端口(是的,我打开了 --debug-fork)。

一个快速示例 grails 应用程序,在 2.3.6 中新创建,运行正常且符合预期,因此它似乎与版本迁移有关,或者可能与旧配置有关。

有没有人遇到过这样的问题,您能否就我在迁移过程中可能没有正确解决的问题提供任何建议?谢谢。

【问题讨论】:

  • 你能分享你的 BuildConfig 吗?不记得升级fork代码块是不是被复制了……
  • 谢谢你,塞尔吉奥。查看此链接 http://pastebin.com/v9Gm6BGR 以查看我正在使用的当前 BuildConfig。
  • 尝试注释掉该块:grails.project.fork
  • 谢谢,柏。我已经尝试过了,它不会导致任何变化。

标签: eclipse tomcat grails


【解决方案1】:

如果您是从以前版本的 Grails 2.3.x 升级并使用 Hibernate 和/或 Tomcat 插件,则需要在 BuildConfig 中更新版本:

build ':tomcat:7.0.50.1'
runtime ':hibernate:3.6.10.8'

查看文档:http://grails.org/2.3.6+Release+Notes

【讨论】:

  • 谢谢。 tomcat 插件已更新(请参阅上面的 pastebin 链接),我的项目不使用 hibernate(仅限 MongoDB-GORM)
【解决方案2】:

我找到了答案。在这里分享它,以帮助其他可能遇到同样问题的人:

当我成功禁用分叉执行时,我看到 Tomcat 抛出了 ClassNotFound 异常:

Caused by: java.lang.ClassNotFoundException: org.apache.catalina.deploy.FilterDef

搜索该错误消息找到了我这个链接:Upgrade to tomcat:7.0.47 fails with web.xml issue

短版:如果你的项目中有一个名为“web-app/META-INF/context.xml”的文件,内容如下,你应该删除它:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Loader delegate="true"/>
</Context>

这样做,事情应该会恢复正常。

【讨论】:

    猜你喜欢
    • 2014-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 2021-08-08
    • 1970-01-01
    • 2015-11-26
    • 1970-01-01
    相关资源
    最近更新 更多