如果您仍在Google AppEngine上运行Java 6应用程序,则将遇到严重的麻烦。 现在,AppEngine团队将随时发布1.8.9版,该版本将不再支持Java 6应用程序的部署。

现有的应用程序将继续运行。 但是您可能应该以必要的紧迫性升级应用程序,因为您将不再能够修复错误。

更多维护

大多数PaaS提供商都会非常定期地更新其平台,以跟上最新的安全修复程序并添加新的服务和API。 在这方面,AppEngine采用了一种非常激进的方法。 当他们认为删除旧代码是正确的事情时,他们不会等待客户。

这些更新通常将向后兼容,但是,如果有足够的时间,将会有一些更新破坏旧代码。 Java 7与Java 6向后兼容,但有些库则不兼容。

好东西吗

我尝试将这项维护工作视为一件好事。 它迫使您紧跟最新技术,就安全而言,就我而言,这是最重要的。

在Google的AppEngine上升级到Java 7

因此,让我们进入细节。 在大多数情况下,此升级就像更改用于构建和部署到AppEngine的JDK一样简单。 就我而言,不是。

主要的问题是我正在使用的JDO / DataNucleus / AppEngine组合的某些部分不适用于Java7。根据它们各自的页面,这应该不是问题,但它不适用于运行时错误。表示版本不兼容。

我一直想升级DataNucleus ,所以我想“为什么不呢?” 这变成了长时间的牛剃毛 。

首先, 升级appengine-datanucleus ,这是AppEngine和DataNucleus之间的集成库。 当前有3个版本 。 仅最新版本使用不推荐使用的代码。 遗憾的是,据我所知,该版本尚未正式发布。 因此,经过深思熟虑后,我最终选择了2.1版(我希望今年摆脱JDO的支持,改用Objectify)

接下来,我发现这也意味着我需要迁移数据存储内容 。 根本没有很好的记录 。 即使您设法找到该Wiki文章,也使用的是旧库。 我无法在我的项目上进行此工作,也没有时间也没有能力找出AppEngine的新mapreduce框架。

最终,我创建了一个可以执行升级的小型任务队列。 幸运的是,实体的数量足够小,可以正常工作。 如果您有更大的数据集,您可能已经知道如何使用mapreduce了。

这样一来,仍然会弹出一些小错误。 他们都被我的单元测试抓住了。 例如,事实证明, 从数据存储区加载空集合现在可以返回null而不是空collection 。 可以解决的小问题,但是如果在某个地方进行了记录,那就太好了。

结论

确保花时间在AppEngine上进行Java 6到7的升级。 这可能对您来说是透明的,但是如果不是这样怎么办?

参考: 在我们的JCG合作伙伴 Peter Backx的Streamhead博客上,在Google AppEngine上升级到Java 7 。

翻译自: https://www.javacodegeeks.com/2014/01/upgrading-to-java-7-on-googles-appengine.html

在Google的AppEngine上升级到Java 7相关推荐

  1. appengine_在Google的AppEngine上升级到Java 7

    appengine 如果您仍在Google AppEngine上运行Java 6应用程序,则将遇到严重的麻烦. 现在,AppEngine团队将随时发布1.8.9版,该版本将不再支持Java 6应用程序 ...

  2. jClarity:在Azure上升级到Java

    在互联世界公共基础结构的新时代,最大和最重要的两个方面是Java和OpenJDK的诞生和兴起. 因此,许多公司将时间和资源投入到构建最先进的技术上,以确保整个行业在未来几年内在AdoptOpenJDK ...

  3. azure 部署java_jClarity:在Azure上升级到Java

    azure 部署java 在互联世界公共基础设施的新时代,最大和最重要的两个方面是Java和OpenJDK的诞生和兴起. 因此,许多公司将时间和资源投入到构建最先进的技术上,以确保整个行业在未来几年内 ...

  4. 通过google app engine 在google cloud 部署支持quic的Java web 应用(多种方式)

    quic最先是由google提出并完善的,18年google cloud支持了quic协议,我尝试在google上部署一套自己的应用,并使其支持quic协议 google的文档还是非常完善的,只是类似 ...

  5. Google App Engine上的Spring MVC和REST

    前段时间,我写了一篇关于如何使用Spring MVC实现Restful Web API的文章 . 阅读我以前的文章以了解它. 在那篇文章中,开发了一个简单的Rest示例. 为了测试该应用程序,将文件复 ...

  6. Ubuntu上安装oracle java 7

    Ubuntu上安装oracle java 7 from: http://sddhn.blog.163.com/blog/static/128187792013103014453434/ 1.通过PPA ...

  7. Hibernate 之父:是时候升级到 Java EE 6 了!

    Hibernate 之父 Gavin King[1]建议开发者升级到 Java EE 6 平台,并指出了一些不愿意升级的观点其实是没有根据的. Java EE 6 发布后,我看到了很多反对升级到新平台 ...

  8. bio linux 创建_不断升级,Java之BIO、NIO、AIO的演变

    一.前言 一句话概括BIO NIO AIO: 第一阶段,服务端采用同步阻塞的BIO: 第二阶段,服务端采用同步阻塞的线程池的BIO: 第三阶段,JDK4之后服务端采用同步非阻塞的NIO: 第四阶段,J ...

  9. vaadin_5分钟内Google App Engine上的Vaadin App

    vaadin 在本教程中,您将学习如何创建第一个Vaadin Web应用程序,如何在本地AppEngine开发服务器上运行它以及如何将其部署到Google App Engine基础结构. 所有这些大约 ...

最新文章

  1. 全球 Top 1000 计算机科学家 h 指数公布,中国顶尖计算机科学家人数进入前三
  2. FCKeditor 在ASP.Net 中的使用说明
  3. 【洛谷P1816 忠诚】线段树
  4. 程序的内存分配之堆和栈的区别
  5. 天谕手游里的NPC真的很好看,画风特别的靓,背景音乐是万茜唱的
  6. 前端学习(3101):vue+element今日头条管理-react简介2
  7. Python的发展方向
  8. CCF201503-1 图像旋转
  9. 带你读AI论文:基于Transformer的直线段检测
  10. mysql 事务 游标_mysql之——存储过程 + 游标 + 事务
  11. OpenCV之分离和合并颜色通道
  12. 海森矩阵的特征值和特征向量的物理意义推导
  13. 跨境电商倍受青睐缘由为何,木瓜移动带你一探究竟
  14. UFS Power Management 介绍
  15. 阿里云服务器地域暂时无法办理经营性ICP许可证什么意思?
  16. Loadrunner11录制含有Ajax请求页面的处理方法
  17. Ubuntu18.04 Sogou搜狗输入法选词面板乱码Bug终极Solution
  18. 【CCF CSP】【Python】【201903-1】小中大
  19. Java:Lterator迭代器
  20. 硬盘坏块监测linux,Linux上检测硬盘上的坏道和坏块

热门文章

  1. 单片机中存储器扩展位地址线怎么算_51单片机存储器小结
  2. oracle修改filesystem,(转):oracle、filesystem、backup日常巡检脚本
  3. git rebase命令(转)
  4. ROC和AUC介绍以及如何计算AUC
  5. XML——XML Schema
  6. Java Springboot应用部署
  7. 缓冲池java_了解Java缓冲池
  8. 使用Spring boot,Thymeleaf,AngularJS从零开始构建新的Web应用程序–第3部分
  9. java ee的小程序_扩展Java EE应用程序的基础
  10. java 排序性能_Java8排序–性能陷阱