我是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.jar
和ojdbc14_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/