2011-01-31 117 views
2

我很難連接到Oracle數據庫OJDBC。GWT - Oracle JDBC連接問題

Error:  

「無法連接到數據庫異常消息:I/O錯誤:網絡適配器不能夠建立連接」使用谷歌Web工具包

I'm和我添加了一個SQL數據庫到我的項目。
數據庫名稱是Agenda。

我查了很多,看起來這個問題對很多人來說都很常見,但是無法克服這個問題。 我已經下載了「ojdbc6.jar」並添加到我的BUILDPATH中。
我刷新,關閉,打開並重新打開,但我仍然看到錯誤。

我的規格:
Windows 7的64位
SpringSource的 - 也嘗試在Eclipse

private static final long serialVersionUID = 1L; 
private Connection connection = null; 
private Properties props = null; 
private ClassLoader cl = null; 
private String databaseURL = ""; 
private String databaseUser = ""; 
private String databasePass = ""; 
public void init() { 
    try { 
     // Load the database connection properties from com.gwt.agenda.GWTAgendaSample.properties 
     props = new Properties(); 
     cl = this.getClass().getClassLoader(); 
     InputStream is = cl.getResourceAsStream("com/gwt/agenda/GWTAgendaSample.properties"); 
     props.load(is); 
     // Load the database access information 
     databaseURL = props.getProperty("databaseURL"); 
     databaseUser = props.getProperty("databaseUser"); 
     databasePass = props.getProperty("databasePass"); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     logger.error("Error loading GWTAgendaSample.properties file.", e); 
    } 
    try { 
     Class.forName("oracle.jdbc.driver.OracleDriver"); 
     // Connect to the database 
     connection = DriverManager.getConnection(databaseURL, databaseUser, databasePass); 
    } catch (SQLException se) { messageOut = "Unable to connect to database. Exception message: " + se.getMessage(); 
     System.out.println(messageOut); 
     se.printStackTrace(); 
     // Server side log 
     logger.error(messageOut + "\n", se); 
     destroy(); 
    } catch (Exception e) { 
     messageOut = "Unable to connect to database. Exception message: " + e.getMessage(); 
     System.out.println(messageOut); 
     e.printStackTrace(); 
     // Server side 
     logger.error(messageOut + "\n", e); 
     destroy(); 
    } 
} 

有人點我在正確的方向。 我錯過了什麼?

請幫忙!

編輯!

Unable to connect to database. Exception message: Erro de E/S: The Network Adapter could not establish the connection 
java.sql.SQLRecoverableException: Erro de E/S: The Network Adapter could not establish the connection 
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:419) 
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:536) 
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:228) 
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) 
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at com.gwt.Agenda.server.GreetingServiceImpl.init(GreetingServiceImpl.java:78) 
    at javax.servlet.GenericServlet.init(GenericServlet.java:212) 
    at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433) 
    at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:342) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:463) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:324) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) 
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488) 
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection 
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:375) 
    at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:422) 
    at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:678) 
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:238) 
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1054) 
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:308) 
    ... 27 more 
Caused by: java.net.ConnectException: Connection refused: connect 
    at java.net.PlainSocketImpl.socketConnect(Native Method) 
    at java.net.PlainSocketImpl.doConnect(Unknown Source) 
    at java.net.PlainSocketImpl.connectToAddress(Unknown Source) 
    at java.net.PlainSocketImpl.connect(Unknown Source) 
    at java.net.SocksSocketImpl.connect(Unknown Source) 
    at java.net.Socket.connect(Unknown Source) 
    at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:209) 
    at oracle.net.nt.ConnOption.connect(ConnOption.java:123) 
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:353) 
    ... 32 more 

Unable to connect to database. Exception message: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

+1

什麼是你的連接網址是什麼? – 2011-01-31 21:02:16

+1

databaseURL = jdbc:oracle:thin:@ hp-PC:1521:議程 databaseUser =用戶 databasePass =議程其中@ hp-PC是我的計算機名稱,議程是我的數據庫名稱 – Martinho 2011-01-31 21:24:23

+1

是否是Oracle偵聽器已啓動並正在運行? – 2011-01-31 21:32:29

回答

2

聽起來好像您的連接被Oracle數據庫拒絕。你確定你的Oracle數據庫已經啓動並正在運行嗎?我很久以前就有過類似的問題,並且認爲沒有必要安裝MYSQL數據庫來運行示例。我錯了,必須安裝才能使其運行。

1

通常我看到這種格式錯誤我的數據庫URL是驅動程序有問題還是我的用戶名和密碼不正確或不正確地傳遞。

我所做的是使用數據庫插件的IDE連接到數據庫,並使用與我的代碼使用的驅動程序相同的驅動程序,並在嘗試連接代碼之前使用該插件。

2

這個錯誤發生在很多cicumstances:

  1. 沒有TNS監聽器配置
  2. TNS-Listerner confugured但在連接URL
  3. 不止一個TNSNAMES沒有運行
  4. 錯誤TNS名稱。系統路徑中的ORA

我對Oracle有很多樂趣。 嘗試tnsping來驗證您的數據庫已連接並運行。