2013-08-03 140 views
0

我編寫了一個servlet程序,我希望它連接到我的Oracle數據庫,但它給了我一個錯誤。我正在使用Eclipse Helios,Tomcat 6.0.37,Oracle 11g(11.2.0.1.0),ojdbc6.jar(在服​​務器項目的運行配置中添加)。我可以通過SQL Plus接口連接到數據庫,甚至可以從Eclipse的數據庫開發視角開始連接。但是當我試圖通過我的servlet進行連接時,我收到了錯誤。對於我的servlet我使用的端口號9090和數據庫的默認1521網絡適配器無法建立連接 - Oracle 11g

java.sql.SQLException: The Network Adapter could not establish the connection 
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:412) 
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531) 
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221) 
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) 
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at com.android.collegenotificationsystem.RegistrationServlet.doGet(RegistrationServlet.java:43) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection 
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:359) 
    at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:422) 
    at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:672) 
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:237) 
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1042) 
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301) 
    ... 21 more 
Caused by: java.net.ConnectException: Connection refused: connect 
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) 
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) 
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) 
    at java.net.AbstractPlainSocketImpl.connect(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:141) 
    at oracle.net.nt.ConnOption.connect(ConnOption.java:123) 
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:337) 
    ... 26 more 

這是我用於建立連接的代碼:

Class.forName("oracle.jdbc.OracleDriver"); Connection con = (Connection) DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:orcl","username","password");

我試圖執行LSNRCTL stat命令這是結果:

LSNRCTL for 32-bit Windows: Version 11.2.0.1.0 - Production on 03-AUG-2013 16:08 
:46 

Copyright (c) 1991, 2010, Oracle. All rights reserved. 

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) 
STATUS of the LISTENER 
------------------------ 
Alias      LISTENER 
Version     TNSLSNR for 32-bit Windows: Version 11.2.0.1.0 - Produ 
ction 
Start Date    03-AUG-2013 12:14:19 
Uptime     0 days 3 hr. 54 min. 28 sec 
Trace Level    off 
Security     ON: Local OS Authentication 
SNMP      OFF 
Listener Parameter File C:\app\Owner\product\11.2.0\dbhome_1\network\admin\lis 
tener.ora 
Listener Log File   c:\app\owner\diag\tnslsnr\Owner-PC\listener\alert\log. 
xml 
Listening Endpoints Summary... 
    (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc))) 
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))) 
Services Summary... 
Service "CLRExtProc" has 1 instance(s). 
    Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service... 
Service "orcl.168.1.56" has 1 instance(s). 
    Instance "orcl", status READY, has 1 handler(s) for this service... 
Service "orclXDB.168.1.56" has 1 instance(s). 
    Instance "orcl", status READY, has 1 handler(s) for this service... 
The command completed successfully 

這是我tnsnames.ora文件的內容:

LISTENER_ORCL = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 


ORACLR_CONNECTION_DATA = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
    ) 
    (CONNECT_DATA = 
     (SID = CLRExtProc) 
     (PRESENTATION = RO) 
    ) 
) 

ORCL = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl.168.1.56) 
    ) 
) 

任何幫助,將不勝感激。提前致謝。

+1

你能告訴我們在eclipse中用來連接到這個數據庫實例的連接信息嗎?連接參數的屏幕截圖肯定有助於 –

+0

我必須問一個明顯的問題:在Oracle數據庫的同一臺機器上運行的Servlet是否? –

回答

7

我有類似的問題。它用一個簡單的命令爲我解決。

lsnrctl start 

網絡適配器異常,因爲造成的:

  1. 數據庫主機名或端口號是錯的(OR)
  2. 數據庫的TNSListener尚未啓動。 TNSListener可能以lsnrctl實用程序啓動。

嘗試使用命令提示符來啓動監聽:

  1. 單擊開始,類型cmd在搜索領域,當cmd在選項列表中顯示,右鍵單擊它並選擇「運行作爲管理員'。
  2. 在命令提示符窗口中,輸入lsnrctl start,不帶引號並按Enter鍵。
  3. 類型Exit並按Enter鍵。

希望它有幫助。

+0

您是否看到Ash發佈的'lsnrctl status'的輸出? –

4

首先檢查您的聽衆是打開還是關閉。 轉到網絡管理器,然後本地 - >服務命名 - > orcl。 然後改變你的主機名稱,並把你的電腦名稱。 現在轉到LISTENER並更改主機並放置您的PC名稱。

+1

我搜索出幾乎整個互聯網!但是這解決了我的問題。 +1順便說一句'這個'hostname'必須是PC名字嗎?或者它只是一個約定或什麼? – Asim

+0

主機名應該與PC名稱不同。 –

相關問題