I’m new to java and Oracle connection I can’t establish a connection from java/tomcat service to Oracle database.
I’m using Java JDK 1.7 and Oracle Version:
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
I added a CLASSPATH to the Environment Variables (Windows Server 2003)
C:\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib\*
I also added the JAVA bin to PATH and JAVA_HOME (used by TOMCAT)
In this folder there are only two files: ojdbc14.jar and ojdbc14_g.jar
My java Code:
import java.sql.*;
....
....
try
{
System.out.println("0");
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("1");
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@//127.0.0.1:1521/xe",
"username", "password");
System.out.println("2");
}
catch (Exception e)
{
//e.printStackTrace();
System.out.println("exc");
}
Output: (It seems that he throw an exception on Class.forName
0
exc
Tomcat, and all Java EE app servers, completely ignore your CLASSPATH environment variable. Same for IDEs. I don’t have one on any machine that I use.
You should not be altering any scripts to do this, either.
Every Java EE app server has a hierarchy of class loaders.
The first to run is the bootstrap class loader.
Next is the server class loader. The right place for those JARs is the Tomcat server /lib directory. The /lib directory contains all the JARs that are common to all deployments. They’re loaded before the WAR files on startup.
There’s a class loader for each WAR file deployed. After the server class loader runs, Tomcat treats all the JARs that you put in the WEB-INF/lib and all the .class files you put under WEB-INF/classes as your project CLASSPATH.
Once you’ve gotten that to work, the next thing is to learn about how to use JNDI lookups. The code you posted isn’t a good idea. Let Tomcat manage a connection pool for you.