Eclipse 将Grails项目从2.2.1升级到2.3.6;使用Tomcat运行应用程序失败,赢得';不要使用Jetty进行调试

Eclipse 将Grails项目从2.2.1升级到2.3.6;使用Tomcat运行应用程序失败,赢得';不要使用Jetty进行调试,eclipse,tomcat,grails,Eclipse,Tomcat,Grails,一个在Grails2.2.1下运行的项目,我刚刚升级到2.3.6(使用GGTS 3.4作为我们的IDE),在“run app”上有一个非常奇怪的问题 如果我使用tomcat插件,它使用tomcat进行开发运行,grails run app命令似乎会启动tomcat,但无法启动应用程序。发送到localhost:8080的任何请求都返回404 如果我使用Jetty插件(它使用Jetty进行开发运行),grails run app命令将正常启动,但从未连接到IDE中的调试端口(是的,我已经打开了--

一个在Grails2.2.1下运行的项目,我刚刚升级到2.3.6(使用GGTS 3.4作为我们的IDE),在“run app”上有一个非常奇怪的问题

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

如果我使用Jetty插件(它使用Jetty进行开发运行),grails run app命令将正常启动,但从未连接到IDE中的调试端口(是的,我已经打开了--debug fork)

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


有人看到过这样的问题吗?您能为我在迁移过程中可能没有妥善解决的问题提供一些建议吗?谢谢。

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

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

检查文档:

我找到了答案。为可能遇到相同问题的任何其他人的利益在此处共享:

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

Caused by: java.lang.ClassNotFoundException: org.apache.catalina.deploy.FilterDef
搜索该错误消息时,我找到了以下链接:

简短版本:如果项目中有一个名为“web app/META-INF/context.xml”的文件,其中包含以下内容,则应将其删除:

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


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

你能分享你的BuildConfig吗?我不记得你是否升级了代码的fork块被复制了…谢谢你,Sérgio。请查看此链接以查看我正在使用的当前BuildConfig。我试过了,没有任何变化。谢谢。tomcat插件已更新(请参阅上面的pastebin链接),我的项目不使用hibernate(仅限MongoDB GORM)