驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server 建立安全连接
A 项目,一两个月没折腾过,就放那边,某日增加了需求,改了些代码,结果测试时程序跑不动,连带原来的代码也跑不动,老是报上面的那个错误。
首先,怀疑是后面新增的代码对以前的代码产生影响。
跑到同事机子上查看下旧代码,跑了下旧代码,没有问题。
其次,怀疑是数据库不通。
运行另外一工程,此工程与本工程访问的是同一个数据库,同一个端口,能够正常运行。
再者,怀疑是环境问题。
1. 更改一系列引用包,包的引用顺序,仍然报错。
2. 抽取部份代码,新建一工程,还是报错。
最后,死马当活马医, 我换个新一点的驱动。这一换还是有效果的,虽然还是报错,但是给的错误信息多了点(关键一点)。
这一点就是
Caused
by
:
java
.
security
.
NoSuchAlgorithmException
:
SunTlsRsaPremasterSecret
KeyGenerator
not available
at javax.crypto.KeyGenerator.<init>(DashoA13*..)
at javax.crypto.KeyGenerator.getInstance(DashoA13*..)
at com.sun.net.ssl.internal.ssl.JsseJce.getKeyGenerator(JsseJce.java:223)
at com.sun.net.ssl.internal.ssl.RSAClientKeyExchange.<init>(RSAClientKeyExchange.java:89)... 22 more
网上搜了下,一搜就搜到 * 上,原来有人跟我一样的错误,那人说是 Eclipse 安装的 JDK 的问题,把 JDK 删了重新装一下就OK ,确实是如此。
PS:在重新安装 JDK 之前我切换成 myeclipse 自带的 sum jdk 能够运行,可以正常运行(没早发现啊)。
Sql Server Driver download : http://www.microsoft.com/zh-cn/download/details.aspx?id=11774
PPPS: 曾经也去搜这么一个错误信息
[org.springframework.jdbc.support.SQLErrorCodesFactory]-[INFO] SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
不过事实上,这次遇到的这问题跟 spring 没半毛钱关系。
事实证明,这打印出来的错误信息很可能不是问题的源头啊,还有就是,多搜搜英文。