手头的很多应用都开始往JDK7上迁移,JDK升级后build,test遇到了很多小问题,在这里一一列举分析一下:
Unicode支持升级
JDK7支持Unicode6.0,支持了很多新的字符。之前程序中为一个替换非法字符的函数写了unit test,测试用例中原本的非法字符在JDK7的函数Character.isDefined()返回结果为true,导致了测试用例的失败。
反射机制改变导致JUnit test失败
JUnit依赖java自身的反射机制,由于JDK7反射机制的变化,获取类默认方法时不是顺序读取或者按照字母排序来获取,而是随机的。如果之前JUnit tests写得不够完善,方法间存在依赖或者teardown没有清理干净,会由于这个原因导致测试有时不过。但是从JUnit4.11开始增加了指定测试方法执行顺序的特性,可以通过增加annotation来指定test cases的执行顺序。总的来说,JUnit test之间理论上不应该存在依赖,JDK7还真的可以帮我们纠正一些test case在设计上的错误。
SSL证书检验更加严格
之前使用1.7.0_25就碰到SSL通信的问题,这次使用1.7.0_45又碰到一个新的问题,不得不说JDK在安全性上下的功夫是越来越深了。第一点,在使用openssl来生成自签名证书,配置文件openssl.cnf中必须定义KeyUsage。第二点,在使用1.7.0_31以后的版本,增加了一个对于keysize大小的验证,具体可以看%JAVA_HOME%/jre/lib/security/java.security
jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024
可见MD2以及keysize小于1024的RSA算法都会被禁止,用户可以直接注释掉或者修改策略。
用JDK7安装Weblogic可能遇到的问题
本文出自 “沉淀” 博客,请务必保留此出处http://jupiterbee.blog.51cto.com/3364619/1358605
原文:http://jupiterbee.blog.51cto.com/3364619/1358605