Der Netzwerkadapter konnte nicht hergestellt die Verbindung - Oracle 11g
Schrieb ich eine servlet-Programm und ich will, dass es eine Verbindung zu meiner Oracle-Datenbank, aber sein gibt mir eine Fehlermeldung. Ich benutze Eclipse Helios, Tomcat 6.0.37, Oracle 11g (11.2.0.1.0), ojdbc6.jar(Hinzugefügt in der run-Konfiguration des Server-Projekt). Ich bin in der Lage, eine Verbindung zu der Datenbank über den SQL-Plus-Schnittstelle und kann sogar eine Verbindung von Eclipse-Datenbank-Entwicklung-Perspektive. Aber wenn ich versuche die Verbindung über mein servlet-ich bin immer der Fehler. Für meine servlet-ich bin mit der port-Nummer 9090 und für die Datenbank die Standardeinstellung 1521.
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
Dies ist mein code für die Verbindung:
Class.forName("oracle.jdbc.OracleDriver");
Connection con = (Connection) DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:orcl","username","password");
Ich habe versucht, die Ausführung der stat-Befehl lsnrctl und das Ergebnis war:
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
Diese sind der Inhalt meiner tnsnames.ora-Datei:
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)
)
)
Jede Hilfe würde geschätzt werden. Vielen Dank im Voraus.
- Können Sie uns sagen, die Verbindung Informationen, die Sie in eclipse eine Verbindung zu dieser Datenbank-Instanz?. Ein screenshot von der Verbindungsparameter würde definitiv helfen
- Ich habe die offensichtliche Frage zu stellen: ist das Servlet läuft auf dem gleichen Rechner wie der Oracle DB?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte das ähnliche Problem. dessen behoben, für mich mit einem einfachen Befehl.
Den Netzwerk-Adapter Ausnahme wird verursacht, weil:
lsnrctl
- Dienstprogramm.Versuchen, starten Sie den listener mit der Eingabeaufforderung:
cmd
in das Suchfeld ein, und wenncmd
zeigt sich in der Liste der Optionen, klicken Sie rechts und wählen Sie 'als Administrator Ausführen'.lsnrctl start
ohne die Anführungszeichen ein und drücken Sie die EINGABETASTE.Exit
und drücken Sie die EINGABETASTE.Hoffe, es hilft.
lsnrctl status
Ash gepostet?lsnrctl: command not found
Überprüfen Sie zuerst Ihre Zuhörer ein-oder ausschalten.
Gehen Sie zu net-manager wird dann eine Lokale -> service-naming -> orcl.
Ändern Sie dann den NAMEN Ihres Rechners und setzen Sie Ihren PC-Namen.
Gehen Sie jetzt zum HÖRER und ändern Sie den HOST, und stellen Sie Ihren PC-Namen.
hostname
hat sein PC-Namen? oder ist es nur eine Konvention, oder was?