我是java和Oracle连接的新手,无法建立从java / tomcat服务到Oracle数据库的连接。

我正在使用Java JDK 1.7和Oracle版本:

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


我将CLASSPATH添加到环境变量(Windows Server 2003)
C:\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib\*

我还将JAVA bin添加到PATH和JAVA_HOME(由TOMCAT使用)

在此文件夹中,只有两个文件:ojdbc14.jarojdbc14_g.jar

我的Java代码:

       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");
                        }


输出:(看来他在Class.forName上抛出了异常

0
exc

最佳答案

Tomcat和所有Java EE应用程序服务器完全忽略您的CLASSPATH环境变量。与IDE相同。我使用的任何计算机上都没有。

您也不应更改任何脚本来执行此操作。

每个Java EE应用服务器都有一个类加载器的层次结构。

首先运行的是引导类加载器。

接下来是服务器类加载器。这些JAR的正确位置是Tomcat服务器的/ lib目录。 / lib目录包含所有部署通用的所有JAR。它们在启动时先加载WAR文件。

每个部署的WAR文件都有一个类加载器。服务器类加载器运行后,Tomcat将您放入WEB-INF / lib中的所有JAR和放入WEB-INF / classs中的所有.class文件都视为项目CLASSPATH。

一旦可以使用,下一步就是学习如何使用JNDI查找。您发布的代码不是一个好主意。让Tomcat为您管理连接池。

关于java - Java/Tomcat和Oracle 10g连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7900813/

10-11 22:10
查看更多