在Google的AppEngine上升级到Java 7
如果您仍在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的升级。 这可能对您来说是透明的,但是如果不是这样怎么办?
翻译自: https://www.javacodegeeks.com/2014/01/upgrading-to-java-7-on-googles-appengine.html
在Google的AppEngine上升级到Java 7相关推荐
- appengine_在Google的AppEngine上升级到Java 7
appengine 如果您仍在Google AppEngine上运行Java 6应用程序,则将遇到严重的麻烦. 现在,AppEngine团队将随时发布1.8.9版,该版本将不再支持Java 6应用程序 ...
- jClarity:在Azure上升级到Java
在互联世界公共基础结构的新时代,最大和最重要的两个方面是Java和OpenJDK的诞生和兴起. 因此,许多公司将时间和资源投入到构建最先进的技术上,以确保整个行业在未来几年内在AdoptOpenJDK ...
- azure 部署java_jClarity:在Azure上升级到Java
azure 部署java 在互联世界公共基础设施的新时代,最大和最重要的两个方面是Java和OpenJDK的诞生和兴起. 因此,许多公司将时间和资源投入到构建最先进的技术上,以确保整个行业在未来几年内 ...
- 通过google app engine 在google cloud 部署支持quic的Java web 应用(多种方式)
quic最先是由google提出并完善的,18年google cloud支持了quic协议,我尝试在google上部署一套自己的应用,并使其支持quic协议 google的文档还是非常完善的,只是类似 ...
- Google App Engine上的Spring MVC和REST
前段时间,我写了一篇关于如何使用Spring MVC实现Restful Web API的文章 . 阅读我以前的文章以了解它. 在那篇文章中,开发了一个简单的Rest示例. 为了测试该应用程序,将文件复 ...
- Ubuntu上安装oracle java 7
Ubuntu上安装oracle java 7 from: http://sddhn.blog.163.com/blog/static/128187792013103014453434/ 1.通过PPA ...
- Hibernate 之父:是时候升级到 Java EE 6 了!
Hibernate 之父 Gavin King[1]建议开发者升级到 Java EE 6 平台,并指出了一些不愿意升级的观点其实是没有根据的. Java EE 6 发布后,我看到了很多反对升级到新平台 ...
- bio linux 创建_不断升级,Java之BIO、NIO、AIO的演变
一.前言 一句话概括BIO NIO AIO: 第一阶段,服务端采用同步阻塞的BIO: 第二阶段,服务端采用同步阻塞的线程池的BIO: 第三阶段,JDK4之后服务端采用同步非阻塞的NIO: 第四阶段,J ...
- vaadin_5分钟内Google App Engine上的Vaadin App
vaadin 在本教程中,您将学习如何创建第一个Vaadin Web应用程序,如何在本地AppEngine开发服务器上运行它以及如何将其部署到Google App Engine基础结构. 所有这些大约 ...
最新文章
- 全球 Top 1000 计算机科学家 h 指数公布,中国顶尖计算机科学家人数进入前三
- FCKeditor 在ASP.Net 中的使用说明
- 【洛谷P1816 忠诚】线段树
- 程序的内存分配之堆和栈的区别
- 天谕手游里的NPC真的很好看,画风特别的靓,背景音乐是万茜唱的
- 前端学习(3101):vue+element今日头条管理-react简介2
- Python的发展方向
- CCF201503-1 图像旋转
- 带你读AI论文:基于Transformer的直线段检测
- mysql 事务 游标_mysql之——存储过程 + 游标 + 事务
- OpenCV之分离和合并颜色通道
- 海森矩阵的特征值和特征向量的物理意义推导
- 跨境电商倍受青睐缘由为何,木瓜移动带你一探究竟
- UFS Power Management 介绍
- 阿里云服务器地域暂时无法办理经营性ICP许可证什么意思?
- Loadrunner11录制含有Ajax请求页面的处理方法
- Ubuntu18.04 Sogou搜狗输入法选词面板乱码Bug终极Solution
- 【CCF CSP】【Python】【201903-1】小中大
- Java:Lterator迭代器
- 硬盘坏块监测linux,Linux上检测硬盘上的坏道和坏块
热门文章
- 单片机中存储器扩展位地址线怎么算_51单片机存储器小结
- oracle修改filesystem,(转):oracle、filesystem、backup日常巡检脚本
- git rebase命令(转)
- ROC和AUC介绍以及如何计算AUC
- XML——XML Schema
- Java Springboot应用部署
- 缓冲池java_了解Java缓冲池
- 使用Spring boot,Thymeleaf,AngularJS从零开始构建新的Web应用程序–第3部分
- java ee的小程序_扩展Java EE应用程序的基础
- java 排序性能_Java8排序–性能陷阱