驱动程序无法通过使用安全套接字层(SSL)加密与
的有关信息介绍如下:
在使用MyEclipse和服务器运行java web程序,并且需要用SQL Server JDBC连接SQL Server数据库时,报错 :
com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“Java.lang.RuntimeException: Could not generate DH keypair”
出现问题时,先是自己捣鼓,后解决不了上百度搜,进CSDN论坛搜,甚至上微软官网搜,然后按照别人给的各种方法改各种东西,然而都无法解决我的问题,最后无奈拿电脑去问老师,终于解决。具体解决方法在步骤3;
回想熬了3个晚上苦找解决方法的我,决定写下我第一个百度经验
我只是说一下我的经验,可能对一部分人有用吧
步骤1,2是我对错误原因的分析。步骤3开始解决方法。(走了好多弯路T_T,在此不细说)
步骤1和2并不是解决的方法,只是我个人对报错信息的分析
解决办法看步骤3;
最近使用MyEclipse,tomcat服务器,sqljdbc4,java jdk1.7版本这些东西,编写的java web项目,在电脑上用浏览器打开localhost:8080/(我的项目名)/(需要连接数据库的jsp文件),出现了如下图错误
然后回到MyEclipse,在控制台console窗口中,显示如下错误:驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接.....(如图)。
然后在下面大概第9行(如图),会看到你编写的java类文件出错,但是你点进去查看代码:conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databasename=newsdb","sa","sa");
,是没有任何问题的,(我猜测真正的错误并不在它)为了输出conn的值,在该行下写:System.out.print("conn="+conn);在控制台显示为conn=null(说明的确是连接失败了-_-)。然后继续往下找报错,可能会遇到空指针异常:java.lang.NullPointerException(如图),这还是因为没有连接到数据库(conn=null),所以查不到数据
下面是解决办法:
打开MyEclipse,如图点击打开
按照如图所示步骤点击1、2、3、4、5 add...
注意:点击前面的下拉箭头,不要双击。
此处用的服务器是Tomcat7,其他的服务器与其类似
点击directory,选择jdk的安装目录,然后确定
当然,你也可以把jdk安装的路径复制过来,我安装的jdk1.7,用的默认安装位置,所以路径是C:\Program Files\Java\jdk1.7.0_80(其实与环境变量JAVA_HOME的路径相同)
注意:一定要选到包含有bin的目录
确定之后相关的东西会自动出来,点击finish。
然后重新运行服务器
最后运行下项目:在电脑上用浏览器打开localhost:8080/(我的web项目名)/(需要连接数据库的jsp文件)。回到MyEclipse查看控制台,无报错则成功解决。还报这个错误的,我就无能为力了



