2016-11-24 4 views
-1

вызвано связи сбросаИсключение в потоке «основного» org.hibernate.exception.JDBCConnectionException: Не удалось открыть подключение

Я пытаюсь подключить Java программу на SQL сервере 20008 r2 через спящий режим, но я получаю 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 вместе с Logger 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]

так что я должен понимать из этого, мне нужно что-то сделать с конфигурацией сервера microsoft sql server 2008 r2, так как у меня есть версия sp1, и это кусок кода работает очень хорошо на компьютере моего друга.

+0

Настройте log4j.properties, чтобы вы могли получать отладочные журналы. сообщение, которое мы можем диагностировать –

+0

У меня есть класс SecondPractice.class, поэтому, как настроить log4j.properties в моем файле, у меня есть файл log4j.jar в моей библиотеке, у меня нет много знаний о log4j.jar, можете ли вы опубликовать коды для этого. –

+0

Пожалуйста, напишите исключение stacktrace как ** текст **, а не как скриншоты. –

ответ

0

В Java 6u29 была ошибка введена оракулу с ошибкой ID: 7103725, который ограничивает SSL соединений к SQL Server 2008 и, кроме Java версии 1.6.0_24 это даст вышеупомянутую ошибку, чтобы решить эту проблему, мы имеем передать следующее свойство и значение для Java

-Djsse.enableCBCProtection = ложный

и, как я использую затмение шаги являются

RunAs >> RunConfiguration >> VMArgument и внутри блока, скопируйте это свойство и значение, для более подробной информации следуйте этому link.