This section provides information the makeURL() error when creating connections from a DataSource object.
While testing the OracleDataSource class, I noticed that if the driver type was not provided, OracleDataSource class
would fail to create a connection object. Here is a simple test program:
/**
* OracleDataSourceError.java
* Copyright (c) 2007 by Dr. Herong Yang. All rights reserved.
*/
import java.sql.*;
import javax.sql.*;
public class OracleDataSourceError {
public static void main(String [] args) {
Connection con = null;
try {
// Setting up the DataSource object
oracle.jdbc.pool.OracleDataSource ds
= new oracle.jdbc.pool.OracleDataSource();
// Testing without setting the driver type
// ds.setDriverType("thin");
ds.setServerName("localhost");
ds.setPortNumber(1521);
ds.setDatabaseName("XE"); // Oracle SID
ds.setUser("Herong");
ds.setPassword("TopSecret");
// Getting a connection object
con = ds.getConnection();
// Getting the connection URL back
System.out.println("Connection URL: "+ds.getURL());
// Closing the connection
con.close();
} catch (Exception e) {
System.err.println("Exception: "+e.getMessage());
e.printStackTrace();
}
}
}
Here is the error message I received:
C:\>javac -cp .;\local\lib\ojdbc14.jar OracleDataSourceError.java
C:\>java -cp .;\local\lib\ojdbc14.jar OracleDataSourceError
Exception: Invalid Oracle URL specified: OracleDataSource.makeURL
java.sql.SQLException: Invalid Oracle URL specified:
OracleDataSource.makeURL
at oracle.jdbc.driver.DatabaseError.throwSqlException(...)
at oracle.jdbc.pool.OracleDataSource.makeURL(...)
at oracle.jdbc.pool.OracleDataSource.getConnection(...)
at OracleDataSourceError.main(OracleDataSourceError.java:23)