java.sql.SQLException: IO 错误: 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.szy.web.dao.SqlManager.connectDB(SqlManager.java:101)

at com.szy.web.dao.CommentDAO.getSpecifyNewsCommentsCount(CommentDAO.java:86)

at com.szy.web.servlet.GetNewsServlet.doGet(GetNewsServlet.java:44)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

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:102)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)

at java.lang.Thread.run(Unknown Source)


解决方案:

像这种适配器的错误,有很多原因. 比如驱动程序 或者URL写错..

还有,用户名和密码;.


如果这些确定没有写错,然后再检查你的oracle安装目录下,比如:F:\oracle\product\10.2.0\db_1\NETWORK\ADMIN

这个目录下的

listener.ora

tnsnames.ora

这两个文件,打开 listener.ora文件.


# tnsnames.ora Network Configuration File: F:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
 (DESCRIPTION =
   (ADDRESS = (PROTOCOL = TCP)(HOST =改成你的计算机名称)(PORT = 1521))
   (CONNECT_DATA =
     (SERVER = DEDICATED)
     (SERVICE_NAME = orcl)
   )
 )


然后,打开tnsnames.ora文件.把host改成机器名称..因为oracle默认是ip地址..如果你的ip地址变动的话,则自然不匹配原因的ip地址.则会发生错误.


# listener.ora Network Configuration File: F:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
 (SID_LIST =
   (SID_DESC =
     (SID_NAME = PLSExtProc)
     (ORACLE_HOME = F:\oracle\product\10.2.0\db_1)
     (PROGRAM = extproc)
   )
 )

LISTENER =
 (DESCRIPTION_LIST =
   (DESCRIPTION =
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
     (ADDRESS = (PROTOCOL = TCP)(HOST = 改成你的计算机名称)(PORT = 1521))
   )
 )


最后把:

private final String DRIVER   = "oracle.jdbc.driver.OracleDriver";
private final String URL      = "jdbc:oracle:thin:@localhost:1521:ORCL";


把localhost替换成机器名;


运行..问题解决..