Grails 2.4.4 与 Java 8 的兼容性

Posted

技术标签:

【中文标题】Grails 2.4.4 与 Java 8 的兼容性【英文标题】:Grails 2.4.4 compatibility with Java 8 【发布时间】:2020-10-29 07:38:12 【问题描述】:

我有一个使用 Grails 2.4.4 且运行时为 Java7 / Tomcat7 的遗留 grails 应用程序。我们计划将它带到 Azure 应用服务,但 azure 支持从 java 8 / tc 8.5 开始的运行时。

我们正在寻求将应用程序升级到 grails 2.5,因为它似乎支持 jdk8。是否有任何关于如何将 2.4.4 应用程序迁移到 2.5 的指示?

【问题讨论】:

如果不知道您的应用程序中有什么,就不可能说出需要解决的问题。仅供参考……我们在发布 Grails 3 时发布 Grails 2.5 的主要原因包括我们希望有一个支持 Java 8 和当时最新版本的 Groovy 的 2.x 版本。我们并没有在 2.5 中引入很多更改来实现这一点。大多数 2.4 到 2.5 的升级都很简单。 您能否确认 grails 2.5.6 构建的应用程序是否与 tomcat 8 兼容?从下面的文档中,我看到提到了 tomcat 6 和 7。 grails.github.io/grails2-doc/2.5.6/guide/gettingStarted.html 【参考方案1】:

我已经这样做了。有些问题我必须解决,但错误日志和 *** 是我的朋友。我无法提供操作方法,但如果您只是尝试并发送您遇到的错误,我很乐意为您提供帮助。

【讨论】:

我能够在 Java 8 上编译应用程序。但是在 tomcat 上使用 Java 8 运行时,我遇到了与 java.lang.ClassNotFoundException: sun.misc.BASE64Decoder 相关的问题 也许这会对你有所帮助:***.com/questions/35301409/…【参考方案2】:

我能够成功地通过一堆 grails 2.2.4 、 java 1.7 、 tomcat 7 迁移到 grails 2.5.6 、 Java 1.8 (compile) 、 tomcat 9 (runtime java 11) 获得应用程序。我遇到的一些障碍是:

    如果您的应用程序使用 JAXB,请确保它在应用程序的运行时可用。对于 java 8 运行时,它们默认是可用的。 mailService Bean 创建问题 - 遇到实例化 mailService Bean 的问题,并通过在配置中将 poolSize 设置为 1 得到解决。 txManager 、 sessionFactory 实例化问题 - 这些问题已通过运行时 jar 解决 - JaxB、marshaller 等。尽管堆栈跟踪具有误导性。

【讨论】:

以上是关于Grails 2.4.4 与 Java 8 的兼容性的主要内容,如果未能解决你的问题,请参考以下文章

Spring安全导入在grails 2.4.4下不起作用

如何在 grails 2.4.4 中使用 mongodb?

Grails 1.3.7 / Java 7 兼容性

防止 Grails 2.4.4 接受无效日期

Grails 3.2 JSON 视图中的 Java 8 LocalDate

Grails 2.4.4 executeQuery() 从数据库表连接表