2016-05-16 22 views
2

ich den folgenden Code verwendet habe, um den Java-DB-Server zu starten:Verbindung zum Java-DB-Server (Derby) von Netzwerk

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

ich auf die Datenbank auf dem lokalen PC verbinden kann über die URL:

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

Aber wenn ich versuche, es auf LAN (Firewall deaktiviert) ich verwende die folgende URL zu verbinden:

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

Doch die anderen PC kann nicht co In Bezug auf diese Datenbank, was ist das Problem? Der Fehler Ich erhalte ist:

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

Was ist der Fehler/die Ausnahme, die sie bekommen? – Sanjeev

Antwort

2

Dies geschieht, weil Sie NetworkServerControl unter Verwendung von 0-arg Konstruktor erstellen NetworkServerControl() die nicht zulässt, Remote-Verbindungen

Sie haben NetworkServerControl(InetAddress address, int portNumber) verwenden, um zu Remote-Verbindungen erlauben

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

Einzelheiten please see this

+1

Danke. Das war die Antwort, die ich brauchte, ich habe die IP-Adresse anstelle von 0.0.0.0 eingegeben und es funktionierte wie ein Zauber! – Elio

+0

Ich bin froh, dass es dir geholfen hat ... Prost – Sanjeev