我正在尝试连接一个linux机器,它在里面安装了oracle数据库11gr2。将PL/SQL developer与任何用户连接没有问题。不幸的是,使用简单的java应用程序,不可能连接到数据库。
以下是我的java代码:
JAVA代码
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 developer。我该怎么办?
发布于 2014-01-10 12:48:43
在调试器中启动程序并复制url的值。如果无法使用PL/连接该URL,则设置url的内容是错误的。更改您的程序以获得与您正在工作的PL/SQL连接中相同的URL,您应该完成。
(这听起来可能很简单,但上一次我遇到这个问题时,它对我起了作用)。
https://stackoverflow.com/questions/21044676
复制相似问题