Я пытаюсь что-то сделать с базами данных и терпеть неудачу.Не удается подключиться к базе данных - 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.
Таким образом, кажется, существует, то ...
Я заметил, что эта проблема продолжается, даже если я явно изменяю URL-адрес для чтения, например, jdbc: derby:// локальный: 7001/LF_JHU_Derby1; Итак ... сеть есть, но соединение с databse не работает. Возможно, потому что оно не может найти его. Но почему? –
Сетевой сервер Derby может размещать сообщения в файле derby.log. Вы там посмотрели? –