无法连接到远程Oracle数据库(11g)

时间:2014-01-10 12:41:23

标签: java oracle11g

我正在尝试连接一台内置oracle数据库11gr2的linux机器。将PL / SQL开发人员与任何用户连接都没有问题。不幸的是,使用我的简单java应用程序,无法连接到数据库。

这是我的java代码:

JAVA CODE

package oraConn;
import java.sql.*;
public class OraConn {

    public static void main(String[] args) {
    Connection connection=null;
    try {
    String driverName= "oracle.jdbc.driver.OracleDriver";
    Class.forName(driverName);
    String serverName="192.168.2.122";
    String portNumber="1521";
    String sid="sas";
    String url="jdbc:oracle:thin:@" + serverName + ":" + portNumber +":"+sid;
    String userName = "system";
    String password = "welcome";    
    connection = DriverManager.getConnection(url,userName,password);
    } catch (Exception e) {
    e.printStackTrace();

    }
}
}

当我运行此代码块时,我得到一个像这样的例外:

java.sql.SQLException: IO Error: Connection refused 
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:489)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:553)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:254)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:528)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at oraConn.OraConn.main(OraConn.java:16)
Caused by: oracle.net.ns.NetException: Connection refused 
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:399)
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1140)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:340)
    ... 7 more

我确信端口1521是开放的,因为我可以使用PL / SQL开发人员。我该怎么办?

1 个答案:

答案 0 :(得分:0)

在调试器中启动程序并复制url的值。如果您无法使用PL / SQL开发人员连接该URL,则设置URL的内容有误。更改程序以获得与工作PL / SQL开发人员连接中相同的URL,您应该完成。

(这可能听起来很简单,但上次我遇到这个问题时它对我有用)。