2016-05-16 4 views
2

Я использовал следующий код для запуска сервера Java DB:Подключение к Java DB сервер (Derby) из сети

System.setProperty("derby.drda.startNetworkServer", "true"); 
    try { 
     NetworkServerControl serverControl = new NetworkServerControl(); 
     serverControl.start(new PrintWriter(System.out, true)); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

Я могу подключиться к базе данных на локальном компьютере, используя URL-адрес:

String dbURLTable = "jdbc:derby://localhost:1527/Tables;create=true;user=Gen;password=YZG"; 

Но когда я пытаюсь подключиться к нему по локальной сети (брандмауэр отключен) Я использую следующий URL:

String dbURLTable = "jdbc:derby://192.168.1.105:1527/Tables;create=true;user=Gen;password=YZG"; 

Еще другой компьютер не может со nnect к этой базе данных, в чем проблема? Ошибки я получаю:

java.sql.SQLNonTransientConnectionException: java.net.ConnectException : Error connecting to server 192.168.1.106 on port 1,527 with message Connection refused: connect. 
    at org.apache.derby.client.am.SQLExceptionFactory.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:664) 
    at java.sql.DriverManager.getConnection(DriverManager.java:270) 
    at Admin.CreateTables.CreateT(CreateTables.java:188) 
    at Admin.CreateTables.run(CreateTables.java:13) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: ERROR 08001: java.net.ConnectException : Error connecting to server 192.168.1.106 on port 1,527 with message Connection refused: connect. 
    at org.apache.derby.client.net.NetAgent.<init>(Unknown Source) 
    at org.apache.derby.client.net.NetConnection.newAgent_(Unknown Source) 
    at org.apache.derby.client.am.ClientConnection.<init>(Unknown Source) 
    at org.apache.derby.client.net.NetConnection.<init>(Unknown Source) 
    at org.apache.derby.client.net.ClientJDBCObjectFactoryImpl.newNetConnection(Unknown Source) 
    ... 6 more 
Caused by: java.net.ConnectException: Connection refused: connect 
    at java.net.DualStackPlainSocketImpl.connect0(Native Method) 
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
    at java.net.Socket.connect(Socket.java:589) 
    at java.net.Socket.connect(Socket.java:538) 
    at java.net.Socket.<init>(Socket.java:434) 
    at java.net.Socket.<init>(Socket.java:211) 
    at javax.net.DefaultSocketFactory.createSocket(SocketFactory.java:271) 
    at org.apache.derby.client.net.OpenSocketAction.run(Unknown Source) 
    at org.apache.derby.client.net.OpenSocketAction.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    ... 11 more 
+0

Какова ошибка/исключение, которое они получают? – Sanjeev

ответ

2

Это происходит потому, что вы создаете NetworkServerControl с помощью 0-Arg конструктора NetworkServerControl() которого не позволяет удаленные соединения

Вы должны использовать NetworkServerControl(InetAddress address, int portNumber) в порядке для удаленных подключений

//accepts connections from other hosts on an IPv4 system 
NetworkServerControl serverControl = 
    new NetworkServerControl(InetAddress.getByName("0.0.0.0"),1527); 

для получения дополнительной информации please see this

+1

Спасибо. это был ответ, который мне нужен, я поставил IP-адрес вместо 0.0.0.0, и он работал как шарм! – Elio

+0

Рад, что помогло вам ... ура – Sanjeev

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