appengine

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

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

更多维护

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

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

好东西吗

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

在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

appengine

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

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

    如果您仍在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. vaadin_5分钟内Google App Engine上的Vaadin App

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

  5. 5分钟内Google App Engine上的Vaadin App

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

  6. Google App Engine上的Spring MVC和REST

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

  7. gke下载_我们如何在GKE上升级Kubernetes

    gke下载 Gojek Long阅读 (Gojek Long Reads) If you're running Kubernetes on GKE, chances are there's alrea ...

  8. 在Ubuntu 14.04 64bit上升级安装ATS 5.3.2/6.1.1实录

    原由 在开发过程中,意外发现下面的TS API接口在ats 4.1.2上没有定义,但在5.3.x中有定义 bool cacheable = TSHttpTxnIsCacheable(txnp, NUL ...

  9. CDN全站加速助力企业云上升级

    [2018云栖大会南京分会飞天技术汇专场,阿里巴巴高级技术专家魏晋带来题CDN全站加速助力企业云上升级的演讲.主要内容是结合实际客观案例详细解读全战加速产品如何对动静态业务进行的加速,结合安全WAF等 ...

最新文章

  1. Android NDK JNI 简单例子1 : Android NDK配置和下载
  2. Windows10上怎样开启FTP服务
  3. html中span的值不显示,为什么加上form标签之后就不能在span中显示获得值了?
  4. pat-1136. A Delayed Palindrome (20) 模拟
  5. Python_pandas 两种主要的数据类型(Series、DataFrame)
  6. pytorch创建dataloader和可视化图片
  7. Linux命令基础5-文件重定向
  8. Scratch2exe-ch将sb2文件转换为exe文件
  9. 智能座舱:汽车雷达的下一个战场
  10. vue路由守卫的执行顺序
  11. RuntimeError: NCCL error in:XXX,unhandled system error, NCCL version 2.7.8
  12. Springboot毕设项目图书馆座位预定系统plo6rjava+VUE+Mybatis+Maven+Mysql+sprnig)
  13. 使用arduino驱动光驱步进电机
  14. 电脑备份,电脑怎么备份系统?电脑备份系统的方法
  15. Invalidate()详解
  16. (基于matlab自写代码)语音信号的线性预测
  17. 无法右键保存 图片 html,谷歌浏览器不能保存图片怎么办_谷歌浏览器右键不能保存图片的解决方法-系统城...
  18. 面向智慧教室物联网关键技术的研究与运用(待完成)
  19. Kinect2.0远程控制鼠标操作
  20. 信用评级模型_不寻常的方式来提高您的信用评分

热门文章

  1. 【拓扑排序】【DP】旅行计划(luogu 1137)
  2. 【动态规划】 石子合并问题(环形) (ssl 1597)
  3. 【动态规划】【递归】取数字问题 (ssl 1644)
  4. 洛谷P1373 小a和uim之大逃离 动态规划
  5. 1、Spring简介
  6. 34、JAVA_WEB开发基础之EL表达式和标签
  7. Java 并发总结——进程与线程
  8. Sentinel(二)之Quick Start
  9. mybatis入门(六)之SQL语句构建器类
  10. laravel允许所有网站进行跨域操作