0

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
1
  • And what exception might that be? I suspect a ClassNotFoundException, am I right? Commented Oct 26, 2011 at 9:30

5 Answers 5

1

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.

Sign up to request clarification or add additional context in comments.

Comments

1

You need to set the classpath as follows:

C:\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib\ojdbc14.jar

the classpath needs to know the jar to use, this is the production driver and the one with the _g is for debugging purpose. Using a wildcard does not work for setting the java classpath. To avoid the need of configuring the classpath you can just copy the ojdbc14.jar to the $tomcat.home/lib directory.

Comments

0

Just print Out e.printStackTrace(); and see weather exception occur...
if it inClass.forName() then that means class path is not set properly... every thing seam fine.. just check..in class path

Comments

0

Driver name is worng.

It must be oracle.jdbc.OracleDriver instead of what you are using oracle.jdbc.driver.OracleDriver.

Comments

0

You need to include the ojdbc14.jar file in your Deployment Assembly in your project. Using eclipse :

proj --> properties --> Deployment Assembly --> select /webContent --> Add --> JavaBuildPathEnteries --> Next --> ojdbc**.jar --> finish.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.