2016-11-24 72 views
-1

造成连接复位异常线程“main” org.hibernate.exception.JDBCConnectionException:无法打开连接

我试图通过休眠我的java程序连接到SQL Server R2 20008,但我得到this错误

主类是如下

package com.prizm; 
import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.cfg.Configuration; 
import org.hibernate.service.ServiceRegistry; 
import org.hibernate.service.ServiceRegistryBuilder; 
public class SecondPractice { 
    public static void main(String args[]){ 
     Configuration configuration = new 
      Configuration().configure("hibernate.cfg.xml"); 
     ServiceRegistryBuilder registry = new ServiceRegistryBuilder(); 
     registry.applySettings(configuration.getProperties()); 
     ServiceRegistry serviceRegistry = registry.buildServiceRegistry(); 
     SessionFactorysessionFactory=configuration.buildSessionFactory(serviceRegistry); 
     Session session = sessionFactory.openSession(); 
     session.beginTransaction(); 
     Student lecturer = new Student(); 
     lecturer.setFirstname("raj"); 
     lecturer.setLastname("kumar"); 
     session.save(lecturer); 
     session.getTransaction().commit(); 
     session.close(); 
    } 
} 

所以我在哪里犯错,我需要什么到k现在关于这个错误,怎么解决呢 在此先感谢

在这里,我已经编辑我的问题,从上述公布的不同的代码,因为我不舒服log4j属性,所以我已经试图在我的Java代码连接到数据库通过JDBC,连接正在完成,但是当涉及到创建任何表或任何其他与数据传输有关的事情时,它会给我提供与前面提到的相同的错误。

这里是JDBC代码与Java的API记录器沿(java.util.logger程序)

package com.prizm; 
import java.sql.*; 
import java.util.logging.Level; 
import java.util.logging.Logger; 
import java.util.logging.FileHandler; 
import java.util.logging.SimpleFormatter; 
public class JKL { 
public static Logger logger=Logger.getLogger(JKL.class.getName()); 
public static FileHandler fh=null; 
public static void init(){ 
try{ 
fh=new FileHandler("logger.log",false); 
}catch(Exception e){} 
fh.setFormatter(new SimpleFormatter()); 
Logger l=Logger.getLogger(""); 
l.addHandler(fh); 
Connection con=null; 
try{ 
DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver()); 
con=DriverManager.getConnection("jdbc:sqlserver://167.01.09.12;IntegratedSecurity=true"); 
if(con!=null){ 
    System.out.println("done"); 
} 
Statement st=con.createStatement(); 
st.executeUpdate("create table hi(id int,name varchar(50))"); 
}catch(SQLException e){l.log(Level.SEVERE,"Here is your error",e);} 
} 
public static void main(String args[]){ 
JKL.init(); 
} 
} 

和我得到的日志记录是这样的

this]

所以我应该从中理解什么,我需要做一些配置的微软sql server 2008 r2,因为我有sp1版本和这个一段代码在我朋友的电脑上工作得很好。

+0

配置log4j.properties,以便您可以获取调试日志。我们可以诊断 –

+0

我有类SecondPractice.class,所以如何配置log4j.properties到我的文件,我有log4j.jar文件进入我的库,我没有太多关于log4j.jar的知识,你可以发布代码为了那个原因。 –

+0

请以** text **形式发布异常堆栈跟踪,而不是屏幕截图。 –

回答

0

在java中6u29有被甲骨文与错误ID推出了一个错误:7103725制约了SSL连接到SQL Server 2008和除Java版本1.6.0_24它会给上述错误,要解决这个问题,我们有到以下属性和值传递到Java

-Djsse.enableCBCProtection =假

和作为我使用蚀步骤如下

运行方式>> >> RunConfiguration VMArgument并在块内部复制此属性和值,更多详细信息请参阅此link

相关问题