如何将 Grails 2.1 应用程序迁移到 Grails 2.3?

2024-01-12

我正在将我的应用程序从 Grails 2.1 迁移到 2.3。迁移后我遇到很多错误 - 我想要一些具有 Grails 2.3 和 Spring 集成的示例应用程序。

我做了一些 HelloWorld 示例应用程序,它们运行良好。但即使我在我的应用程序中应用了同样的东西,甚至在某些地方出现错误。因为我的应用程序非常大(100mb),并且我使用了很多与 Spring、Hibernate 和很多 Grails 插件的集成。

我没有找到任何“从 Grails 2.1 迁移到 Grails 2.3”这样的代码级文档。我无法从 Grails 或在线找到任何示例应用程序。

Grails 官方文档,都是关于提供 Grails META 信息的。

在我的 main.gsp 229 行中:

<g:include controller="filter" action="tree"/>

Caused by: org.codehaus.groovy.grails.web.pages.exceptions.GroovyPagesException: Error processing GroovyPageView: Error executing tag <g:include>: Unable to execute include: Request processing failed; nested exception is org.codehaus.groovy.grails.exceptions.GrailsRuntimeException: java.lang.IllegalStateException: Cannot reset buffer after response has been committed
    at org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.createGroovyPageException(GroovyPageView.java:205)
    at org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.handleException(GroovyPageView.java:182)
    at org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderWithTemplateEngine(GroovyPageView.java:153)
    at org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderMergedOutputModel(GroovyPageView.java:84)
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:264)
    at org.codehaus.groovy.grails.web.sitemesh.SpringMVCViewDecorator.render(SpringMVCViewDecorator.java:67)
    ... 51 more
Caused by: org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException: Error executing tag <g:include>: Unable to execute include: Request processing failed; nested exception is org.codehaus.groovy.grails.exceptions.GrailsRuntimeException: java.lang.IllegalStateException: Cannot reset buffer after response has been committed
    at org.codehaus.groovy.grails.web.pages.GroovyPage.throwRootCause(GroovyPage.java:531)
    at org.codehaus.groovy.grails.web.pages.GroovyPage.invokeTag(GroovyPage.java:475)
    at sun.reflect.GeneratedMethodAccessor379.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1243)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1085)
    at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:909)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:989)
    at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:909)
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
    at mycompany_dev_testuserdev_ws3_myapp_grails_app_views_layouts_main_gsp$_run_closure2.doCall(main.gsp:229)

将 Config.groovy 和 BuildConfig.groovy 文件与空的新 Grails 2.3 应用程序的默认值进行比较。

最显着的变化是插件依赖项不应再在 application.properties 中描述。您还应该确保使用正确版本的 Grails Tomcat、Hibernate 和 Scaffolding 插件。 Tomcat 和 Hibernate 插件版本不再与 Grails 发行版本相同。 Grails 2.3 中的脚手架功能已被提取到单独的插件中。 还要确保您使用正确的插件范围(为 tomcat 构建,为 hibernate 运行时)。

还建议开始使用新的基于 Maven(使用作为 Maven 一部分的以太库)依赖解析。这是通过设置完成的grails.project.dependency.resolver = "maven"在 BuildConfig.groovy 中。我在 Grails 2.3 中使用旧的基于 ivy 的解析器时遇到了奇怪的类加载问题。

我希望这有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Grails 2.1 应用程序迁移到 Grails 2.3? 的相关文章

随机推荐

  • 用户如何在客户端下载文件(Google Web Toolkit)

    我正在使用 GWT Google Web Toolkit 制作一个网站 我需要向用户显示一个表格 并让用户下载表格的内容 在客户端 用户按下 下载 按钮时如何下载文件 下载 按钮有一个onClick 听众 并且客户端类扩展Composite
  • 外部声明中的警告

    include
  • Scala 有没有通用的记忆方法?

    我想记住这一点 def fib n Int if n lt 1 1 else fib n 1 fib n 2 println fib 100 times out 所以我写了这个 令人惊讶的是 它编译并工作了 我很惊讶 因为fib在其声明中引
  • 使用 PHP shell_exec() 循环:使用 php for() 还是 bash for-do-done?

    假设我想执行命令mycommand使用 PHPshell exec 10倍 我应该做一个 bash 循环吗 shell exec for i in 1 10 do mycommand i done 或者更确切地说是一个 PHP 循环 for
  • 如何从主应用程序访问 Rails Engines 方法?

    我正在尝试使用 Spree Core 引擎中定义的 current order 方法 https github com spree spree blob master core lib spree core current order rb
  • Symfony2 Doctrine2 后坚持关联

    有没有办法在 symfony2 中接收关联字段的 Doctrine 生命周期事件 http docs doctrine project org projects doctrine orm en 2 0 x reference events
  • phpmyadmin 3.4.0 ERD 转 PDF

    我可以使用 Designer 工具在 phpmyadmin 3 4 0 中创建 ERD 但如何将其导出为 PDF 我可以看到 导入 导出 PDF 模式的坐标 按钮 但看不到它的作用 也看不到如何获取我的 ERD 的 PDF 提前致谢 你已经
  • 将 AutoIT 与 Selenium 结合使用

    感谢您回答我之前的问题 但随着一个问题的解决 显然又发现了另一个问题 与Flash游戏本身的交互现在是问题所在 我尝试研究如何在 Selenium 中做到这一点 但无法完成 我见过 FlashSelenium Sikuli 和 AutoIT
  • Go 中的 switch 和 select 有什么区别?

    有什么区别吗switch and select in Go 除了一个人接受争论而另一个人不接受这一事实之外 A select仅与通道一起使用 Example https gobyexample com select A switch与具体类
  • 用于获取前一个同级的 CSS 选择器[重复]

    这个问题在这里已经有答案了 有没有办法使用纯 CSS 3 来选择具有特定类的元素的前一个同级元素 i e html div div div div div div div div css box1 some styling box2 som
  • std::引用向量

    我有这样的问题 我有课Foo 如果有这个类的一些对象 Foo a 我需要将此对象放入两个不同的向量 std vector
  • DisplayTag 导出和链接

    我正在使用显示标签库 http www displaytag org1 2 导出时所有链接都导出为文本 如何从导出中删除链接 您可以将 display column 标记上的媒体属性设置为 html 以便仅在 JSP 上显示该列 而不在导出
  • Files.walk(),计算总大小

    我正在尝试计算光盘上文件的大小 在 java 7 中 这可以使用文件 walkFileTree http docs oracle com javase 8 docs api java nio file Files html walkFile
  • Selenium Webdriver:在文本字段中输入文本

    当我在文本字段中输入文本时 它会被删除 这是代码 String barcode 0000000047166 WebElement element enter driver findElement By xpath id div barcod
  • 从包含透明像素的图像创建自定义 JButton

    阅读编辑 2 了解我实际上缺少什么才能使其正常工作 我目前正在尝试使用在 Photoshop 中创建的具有 alpha 参数的图像来创建一些自定义 JButton 到目前为止 重写 Paint 方法来绘制图像已经起作用 因为绘制的按钮显示了
  • Xcode 项目资源组织和结构

    我对 Xcode 比较陌生 困扰我的一件事是 当我添加资源时 它会添加到我的项目目录的顶级目录中 例如 目前我的所有图像都位于顶级目录中 这使事情看起来很混乱 例如 我宁愿有一个images 文件夹 然后是其中的子文件夹 用于存储某些内容的
  • 在 Heroku 上缓存named_scope?

    我有一个名称范围 它将查询结果作为参数 scope current budget where budget review gt Appconfig budget status 方法budget status本身定义为 def self bu
  • 致命:使用 cron 作业推送到 git 时无法读取用户名

    嘿 我正在尝试使用 Mac 上的 cron 作业将代码推送到 git 我使用编辑我的 crontabcrontab e并有以下内容 12 1 Dropbox MD sync sh 12 5 Dropbox MD sync sh 脚本如下 b
  • Eclipse 删除“导出”历史记录

    因此 当我想将项目导出到 jar 文件时 我仍然看到已删除的主类和项目 是的 正确删除 我如何摆脱那些不再存在的东西 它存储在这里
  • 如何将 Grails 2.1 应用程序迁移到 Grails 2.3?

    我正在将我的应用程序从 Grails 2 1 迁移到 2 3 迁移后我遇到很多错误 我想要一些具有 Grails 2 3 和 Spring 集成的示例应用程序 我做了一些 HelloWorld 示例应用程序 它们运行良好 但即使我在我的应用