java 迁移数据_从迁移到Java 7的小技巧

java 迁移数据

经过几年的努力,我们终于开始在软件级别方面将应用程序从黑暗时代中拉出来,其中一个步骤是将我们的Java版本升级到Java7。在大多数情况下,这很轻松,但是有一些惊喜:

    • 当我们切换到Java 7时,已经运行了好几年的测试用例开始失败。事实证明,我们有一些测试用例依赖于同一类中的先前测试用例。 这在两个方面都是不好的:1)测试用例应该各自独立; 2)测试类中测试用例的执行顺序是不能保证的,尽管到目前为止(在Java 7之前),顺序是找到的在源代码中。 我发现此链接有助于解释不一致之处

      我在Eclipse中看到的排序。 这不是Java 7的问题,而是我们的测试用例。 当我们开始使用Java 7时出现的一些东西
    • 我们的Swing客户开始抛出ClassCastExceptions ,并且该代码已经存在了10多年了,其历史可以追溯到Java 1.4。读取javadocs可以解释这个问题,但是我决定进行更多研究以找出发生这种情况的确切原因。现在。 我们正在将条目添加到TreeSet中,以保存FocusManager的前进和后退遍历键,并将KeyStroke对象放入TreeSet中。 Javadoc明确指出放置在TreeSet(或下面的TreeMap)中的对象必须是可比较的,或者您需要使用Comparator创建TreeSet以便对这些对象进行排序。 我们什么都不做,也没有例外。 深入研究Java源代码,我发现从Java 7开始,TreeMap类已开始强制执行此“要求”,在该类的早期版本中该代码已被注释掉,因此实际上并不需要比较器。 修复很容易,我创建了一个KeyStrokeComparator并将其传递给TreeSet构造函数。
    • 我还注意到,我们的Java jar签名已开始记录有关证书无效的警告。 为了保持构建的整洁而不发出这些警告,我进行了一些搜索,发现了一些与Java 7相关的帖子,并从代码签名证书中删除了MD2withRSA算法。 我在Verisign的支持下进行了工作,以帮助从证书链中删除该算法,并且警告消失了! 不幸的是,这还没有结束代码签名问题。
    • 接下来,我们的Web Start客户端将不再成功启动,而是引发异常,至少在开发过程中,Web起始程序经常会遇到“ 并非所有罐子都使用同一证书签名的错误消息”错误消息。 我写了另一篇关于如何帮助调试的博客文章 ,认为这只是“常见的可疑罐子之一”,我们有问题,但不是,不是。 知道自证书更新以来所有这一切都发生了,这使我检查了所有已签名的罐子以寻找线索。 所有罐子都已使用相同的证书签名,但是第三方罐子是在删除链条目之前签名的,而我们的应用程序代码是在证书更改后作为构建过程的一部分签名的。 这使我相信,即使罐子是用相同的证书签名的,在更改证书之前和之后签名的罐子之间也必须有一些区别。

对jar进行签名后,将在jar内的MANIFEST.MF文件中生成条目,对于jar中的每个类一个条目。 这些条目包含类的名称以及一些签名算法信息,并且在查看MANIFEST.MF文件之后,我发现了区别。 更改前签名的第3方jars包含每个类的SHA1-Digest条目,但从当前版本签名的jars中包含SHA-256-Digest条目 用更新的证书重新签名所有的第3方jar可以解决大多数问题。 在重新签名过程中,我们遇到了一个小问题,在该过程中,我们用自己生成的版本重写了现有的MANIFEST.MF,这导致了几个jar文件在清单文件中包含其他服务提供商信息的问题。

全天工作! 很高兴成为Java领域的最新专家。 接下来,迁移到EJB3和Hibernate 3或4。

希望这可以帮助!

参考:从我们的JCG合作伙伴 Mike Miller到Scratching我的编程痒博客上的Minor Gotchas 。

翻译自: https://www.javacodegeeks.com/2013/05/minor-gotchas-from-migration-to-java-7.html

java 迁移数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/348643.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模拟电路概念知识体系梳理(基础部分)

半导体 P、N型半导体 N型半导体 掺入少量杂质磷元素(或锑元素)的硅晶体(或锗晶体)中 电子型半导体其导电性主要是因为自由电子导电 P型半导体 掺入少量杂质硼元素(或铟元素)的硅晶体(或锗…

深入浅出组合逻辑电路(1)

定义:电路在任意时刻的输出仅由该时刻的输入信号决定,与之前的输入信号无关。 组合电路通常有一些逻辑门构成,许多具有典型功能的组合电路已经集成为商品电路。(加法器,译码器等) 分析步骤: …

jdk7默认gc算法_JDK 7的算法和数据结构

jdk7默认gc算法在定期检查JDK中是否存在一种或另一种标准算法时,我决定进行这种索引。 有趣的是,为什么其中包含一些著名的数据结构或算法,而其他却没有? 此调查的格式仅涉及JDK的算法和数据结构的关键特性和功能,所有…

深入浅出逻辑组合电路(2)

深入浅出逻辑组合电路(2) 门电路中的冒险现象 通常讨论逻辑电路时,只从抽象的逻辑角度进行描述,不考虑实际电路中必然存在的信 号传输时延和信号电平变化时刻对逻辑功能的影响。逻辑门的传输时延以及多个输入信号变 化时刻不同步…

学习数字电路必须知道的几种编码

2-10进制编码(BCD编码) BCD码:使用一个四位二进制代码表示一位十进制数字的编码方法。 一、8421码 选取0000~1001表示十位二进制数 0到9 按自然顺序的二进制数表示所对应的十进制数字,是有权码,从高位到地位的权依…

Packt发行的$ 5 Java编程书籍:精通Java 9,Java 9 High Performance

您好极客! 今天,我们为您带来一些激动人心的消息! Java Code Geeks和Packt联手为您提供广泛的书籍库每周折扣。 本周,我们提供Java相关书籍的折扣,以帮助您理解和掌握Java。 他们全都打折到每本书5美元 !…

深入浅出组合逻辑电路(3)常见的几种编码器

编码器是啥? 下面介绍几种常见的编码器 答:编码器是实现编码的数字电路,对于每个有效的输入信号,编码器输出与之对应的一组二进制代码。 2^n-n线编码器 是最基本的编码器 图示为8-3线译码器 输入为8个代编码信号,…

jpa命名 多条件查询命名_JPA 2 | 动态查询与命名查询

jpa命名 多条件查询命名JPA有自己的查询语言,称为JPQL。 JPQL与SQL非常相似,主要区别在于JPQL与应用程序中定义的实体一起使用,而SQL与数据库中定义的表和列名称一起使用。 在定义将对定义的Entity类执行CRUD操作的JPA查询时,JPA为…

深入浅出逻辑电路(4)介绍几种常见的译码器

译码器是啥? 输入一组二进制编码,输出一个有效的信号 译码器输入的 n 位二进制代码有2n种取值,称为2n种不同的编码值。若将每种编码分别译出,则译码器有2n个译码输出端,这种译码器称为全译码器。 若译码器的输入编码…

没有科学计数法的Java十进制数的简单字符串表示形式

Java中用于十进制数字的主要类型 /对象是float / Float , double / Double和BigDecimal 。 在每种情况下,其“默认”字符串表示形式都是“计算机科学计数法”。 这篇文章演示了一些简单的方法,可以在没有科学符号的情况下提供十进制数的字符串…

几道题帮你搞定数据选择器

这里不写答案,只讲思路 这个逻辑表达式比较短,咱们首先就考虑到先将F写成最小项表达式 从三个自变量中选择两个作为选择器的地址变量,本题为A1A0AB 然后把C处理一下,化简式子,使得式子的每一项都有AB,每一…

Spring Data Solr教程:查询方法

我们已经了解了如何配置Spring Data Solr。 我们还学习了如何向Solr索引添加新文档,如何更新现有文档的信息以及从Solr索引删除文档。 现在是时候继续前进,学习如何使用Spring Data Solr从Solr索引中搜索信息。 我们的搜索功能的要求如下: 搜…

深入浅出时序逻辑电路(1)

我们一提到时序逻辑电路,就会想到触发器 先讲讲时序逻辑电路:时序逻辑电路(常简称为时序电路)内部包含存储器,用于记忆电路的工作状态和输入变化情况,其输出由当前的输入和存储信息共同确定的一种电路。 再…

云幸福–如何在几分钟内安装新的OpenShift Container Platform 3.7

此安装需要安装Red Hat Middleware产品流(预先配置的容器选项)以及所有其他功能,例如源容器,映像容器和.Net Core容器。自OpenShift容器平台发布以来,我一直希望提供一个简单的方法。 ,完全配置且易于使用的…

从分析一个简单的时序电路入手

这道题怎么搞呢 先看图 看到了一个JK触发器,左边那个是J触发器转化为D触发器 右边那个就是JK触发器 写出两个次态方程:还有一个输出表达式:将激励函数带入表达式,求出两个次态方程 然后画出状态表: 再画出状态图&a…

组合逻辑电路运算法则

逻辑电路计算性质 与非门:有0出1,全1才0 & 或非门:有1出0,全0才1 >1 异或门:相同出0,不同出1 ⊕ 常用公式 ABAB‾\overline{B}BA AABA AAB‾\overline{B}BAB A00 A1A A*A‾\overline{A}A0 …

jmeter实现翻页功能_JMeter定制功能实现

jmeter实现翻页功能JMeter提供了可在采样器中使用的功能。 在编写复杂的测试计划时,您会觉得JMeter缺少某些方法。 您使用Beanshell脚本定义自己的自定义方法。 JMeter调用Beanshell解释器来运行脚本。 只要您不产生高负载(大量线程)&#xf…

常见的集成逻辑门(CMOS\TTL\ECL)

CMOS系列 TTL系列 ECL系列 集成逻辑门的主要性能指标 关于噪声容限UN 输出负载能力 总结一下:不管那么多,先把两个算出来,取最小的就完事了 答案:ECL,CMOS,ECL,CMOS

git如何快速提交代码(大学生适用)

众所周知,git是一个强大的版本控制工具 git的学习成本比较高,但大学生常用的功能也就那么几个 首先你需要下载一个git,生成一个密钥 生成方法:打开git(bash) $ ssh-keygen -t rsa -C “你的邮箱地址”&a…

Spring框架–应用程序上下文–到达应用程序上下文的三种方法

本文向您展示了三种不同的方式来获取代码中的Spring Framework Application Context。 摘要 (这是我在2010年撰写的旧文章的转贴)。 在Google中搜索“ Spring ApplicationContextAware ”时,您会遇到很多建议,而且我也看到很多人…