用jsp页面测试Oracle数据库连接,出现如下错误:
  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(T4CDriverExtensio
n.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 org.apache.jsp.logindemo.logindemo01.check_jsp._jspService(check_jsp.
java:84)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper
.java:419)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:3
90)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:304)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:240)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:164)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
torBase.java:462)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:164)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:100)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
563)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:399)
        at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcesso
r.java:306)
        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.pr
ocess(Http11AprProtocol.java:322)
        at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoin
t.java:1732)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish t
he connection
        at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:359)
        at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.j
ava: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)
        ... 29 more
Caused by: java.net.ConnectException: Connection refused: connect
        at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)
        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)
        ... 34 more
error2
java.lang.NullPointerException
        at org.apache.jsp.logindemo.logindemo01.check_jsp._jspService(check_jsp.
java:91)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper
.java:419)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:3
90)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:304)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:240)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:164)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
torBase.java:462)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:164)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:100)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
563)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:399)
        at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcesso
r.java:306)
        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.pr
ocess(Http11AprProtocol.java:322)
        at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoin
t.java:1732)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)求解....
下面是部分代码:<%!
public static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ;
public static final String DBURL = "jdbc:oracle:thin:@localhost:1158:MLDN" ;
public static final String DBUSER = "scott" ;
public static final String DBPASS = "tiger" ;
%>
<%
Connection conn = null ;
PreparedStatement pstmt = null ;
ResultSet rs = null ;
boolean flag = false ; // 表示登陆成功或失败的标记
%>
<%
String userid = request.getParameter("userid") ; // 接收表单参数
String password = request.getParameter("password") ; // 接收表单参数
try{
Class.forName(DBDRIVER) ;
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }    try { conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;

}catch(Exception e){
        e.printStackTrace();
}finally{
try{
conn.close() ; // 连接一关闭,所有的操作都将关闭
}catch(Exception e){
            e.printStackTrace();
        }
}
%>

解决方案 »

  1.   

    java.sql.SQLException: Got minus one from a read call
    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(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at Test.getConnection(Test.java:28)
    at Test.main(Test.java:10)
    Caused by: oracle.net.ns.NetException: Got minus one from a read call
    at oracle.net.ns.Packet.receive(Packet.java:285)
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:286)
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1042)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301)
    ... 8 more用java写的连接代码如下:
    import java.sql.*;public class Test {
    public static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ;
    public static final String DBURL = "jdbc:oracle:thin:@localhost:1158:mldn" ;
    public static final String DBUSER = "scott" ;
    public static final String DBPASS = "tiger" ;

    public static void main(String[] args) {
    Connection conn = getConnection();
    if (conn != null) {
    System.out.println("success!");
    } else {
    System.out.println("error!");
    }
    }

    public static Connection getConnection() {
    Connection conn = null;

    try {
    Class.forName(DBDRIVER);
    } catch (ClassNotFoundException e) {
    // e.printStackTrace();
    }

    try {
    conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
    } catch (SQLException e) {
    e.printStackTrace();
    }

    return conn;
    }
    }
      

  2.   

    Oracle的默认端口不是1521吗?.、
    上码,你参考下:public class JdbcUtils {
    private static String url="jdbc:oracle:thin:@localhost:1521:orcl";
    private static String user="scott";
    private static String pwd="tiger";private JdbcUtils(){}
    // 1、注册驱动oracle.jdbc.driver.OracleDriver
    static{
    try {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    System.out.println("数据库驱动加载失败!");
    }
    }
    // 2、建立一个连接
    public static Connection getConnection() throws SQLException{
    return DriverManager.getConnection(url, user, pwd);
    }// 5、关闭资源
    public static void free(ResultSet rs,Statement stmt,Connection conn){
    try {
    if(rs!=null)
    rs.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }finally{
    try {
    if(stmt!=null)
    stmt.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }finally{
    try {
    if(conn!=null)
    conn.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }
    }
      

  3.   

    这样是会报错的,因为scott用户是oracle的一个内置用户,默认是被锁定的,不可以用这个来连接数据库,你需要重新创建一个用户,这样就可以连接成功了,你可以试试看!
      

  4.   

    我的scott已经解锁了,并且在控制台cmd进入sqlPlus是可以用scott登录的