2016-11-24 103 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

相關問題