2016-05-16 5 views
2

J'ai utilisé le code suivant pour démarrer le serveur Java DB:Connectez-vous à Java serveur DB (Derby) à partir du réseau

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

je peux connecter à la base de données sur le PC local en utilisant l'URL:

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

Mais lorsque je tente de s'y connecter sur le réseau local (pare-feu désactivé) J'utiliser l'adresse suivante:

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

Pourtant, l'autre PC ne peut pas co nnect à cette base de données, quel est le problème? L'erreur que je reçois est:

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

Quelle est l'erreur/exception qu'ils obtiennent? – Sanjeev

Répondre

2

Cela se produit parce que vous créez NetworkServerControl en utilisant constructeur 0-arg NetworkServerControl() qui ne permet pas les connexions

Vous devez utiliser NetworkServerControl(InetAddress address, int portNumber) pour à autoriser les connexions à distance

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

pour plus de détails please see this

+1

Merci. c'était la réponse dont j'avais besoin, j'ai placé l'adresse IP au lieu de 0.0.0.0 et cela a fonctionné comme un charme! – Elio

+0

Content de t'avoir aidé – Sanjeev