2014-02-06 6 views
0

Я пытаюсь что-то сделать с базами данных и терпеть неудачу.Не удается подключиться к базе данных - java.sql.SQLNonTransientConnectionException

Это мой код, вплоть до точки SQLNonTransientConnectionException:

public class UFTest { 

    public static void main(String[] args) throws ClassNotFoundException, SQLException{ 

    Hashtable ht = new Hashtable(); 
    ht.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); 
    ht.put(Context.PROVIDER_URL, "t3://localhost:7001"); 
    ht.put(Context.SECURITY_PRINCIPAL, "User"); 
    ht.put(Context.SECURITY_CREDENTIALS, "pw"); 
System.out.println("cx/ht succesful");  
    Context cx = null; 
    Connection con = null; 
    Statement stmt = null; 
    ResultSet rs = null; 
    String source = "jdbc/LF_JHU_DERBY"; 
    File file = new File("Student_List.txt"); 

    try{ 
System.out.println("try entered");   
     cx = new InitialContext(ht); 
System.out.println("cx created"); 
     Class.forName("org.apache.derby.jdbc.ClientDriver"); 
     DriverManager.getConnection("jdbc:derby://localhost:7001/LF_JHU_Derby;create=true","User", "pw"); 

На данный момент я получаю это:

java.sql.SQLNonTransientConnectionException: Insufficient data while reading from the network - expected a minimum of 6 bytes and received only 0 bytes. The connection has been terminated. 
at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown Source) 
at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source) 
at org.apache.derby.jdbc.ClientDriver.connect(Unknown Source) 
at java.sql.DriverManager.getConnection(DriverManager.java:571) 
at java.sql.DriverManager.getConnection(DriverManager.java:215) 
at randomtests.UFTest.main(UFTest.java:38) 
Caused by: org.apache.derby.client.am.DisconnectException: Insufficient data while reading from the network - expected a minimum of 6 bytes and received only 0 bytes. The connection has been terminated. 
at org.apache.derby.client.net.Reply.fill(Unknown Source) 
at org.apache.derby.client.net.Reply.ensureALayerDataInBuffer(Unknown Source) 
at org.apache.derby.client.net.Reply.readDssHeader(Unknown Source) 
at org.apache.derby.client.net.Reply.startSameIdChainParse(Unknown Source) 
at org.apache.derby.client.net.NetConnectionReply.readExchangeServerAttributes(Unknown Source) 
at org.apache.derby.client.net.NetConnection.readServerAttributesAndKeyExchange(Unknown Source) 
at org.apache.derby.client.net.NetConnection.flowServerAttributesAndKeyExchange(Unknown Source) 
at org.apache.derby.client.net.NetConnection.flowUSRIDPWDconnect(Unknown Source) 
at org.apache.derby.client.net.NetConnection.flowConnect(Unknown Source) 
at org.apache.derby.client.net.NetConnection.<init>(Unknown Source) 
at org.apache.derby.client.net.NetConnection40.<init>(Unknown Source) 
at org.apache.derby.client.net.ClientJDBCObjectFactoryImpl40.newNetConnection(Unknown Source) 
... 4 more 

Теперь я бегу сервер Weblogic, при котором DB должен был быть создан на порте 7001. Я замечаю, что, если я выбираю случайный номер порта, ошибки, которые я получаю, говорят мне, что это было «отказано». Здесь это не так - это принято ... просто нет ответа.

Кроме того, на линии:

cx = new InitialContext(ht); 

я получаю следующее:

Problem creating dummy orb: org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 203 completed: No 

, который, несмотря на прибегая к помощи, не понимают (и, конечно, не знаю, как это исправить) , Я не знаю, связаны ли проблемы или нет ... Пожалуйста, помогите!

Это из командной строки (о создании БД):

ij> CONNECT 'jdbc:derby:LF_JHU_Derby;create=true'; 
CREATE TABLE STUDENT (FIRST_NAME varchar(40), LAST_NAME varchar(40) , SSN char(11) ,   EMAIL varchar(40), ADDRESS varchar(40), USERID varchar(8) , PASSWORD varchar(8)); 
quit;ij> 0 rows inserted/updated/deleted 

А потом, протестирована с:

ij> CONNECT 'jdbc:derby:LF_JHU_Derby;create=true'; 
WARNING 01J01: Database 'LF_JHU_Derby' not created, connection made to existing database  instead. 

Таким образом, кажется, существует, то ...

+0

Я заметил, что эта проблема продолжается, даже если я явно изменяю URL-адрес для чтения, например, jdbc: derby:// локальный: 7001/LF_JHU_Derby1; Итак ... сеть есть, но соединение с databse не работает. Возможно, потому что оно не может найти его. Но почему? –

+0

Сетевой сервер Derby может размещать сообщения в файле derby.log. Вы там посмотрели? –

ответ

0

Если у вас есть

@Transient 

аннотации в верхней части метода, который вы использовали это, попробуйте удалить эту аннотацию, а затем продолжить ...

Смежные вопросы