#java #oracle #oracle10g #odbc #database-connection
#java #Oracle #oracle10g #odbc #подключение к базе данных
Вопрос:
Я новичок в соединении 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
Я добавил ПУТЬ к классу к переменным среды (Windows Server 2003)
C:oraclexeapporacleproduct10.2.0serverjdbclib*
Я также добавил 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
Комментарии:
1. И какое это может быть исключение? Я подозреваю
ClassNotFoundException
, что я прав?
Ответ №1:
Tomcat и все серверы приложений Java EE полностью игнорируют вашу переменную окружения CLASSPATH. То же самое для IDE. У меня его нет ни на одной машине, которую я использую.
Вы также не должны изменять какие-либо сценарии для этого.
Каждый сервер приложений Java EE имеет иерархию загрузчиков классов.
Первым запускается загрузчик классов bootstrap.
Далее следует загрузчик серверного класса. Подходящее место для этих JAR-файлов — каталог сервера / библиотеки Tomcat. Каталог /lib содержит все JAR, которые являются общими для всех развертываний. Они загружаются до запуска файлов WAR при запуске.
Для каждого развернутого файла WAR есть загрузчик классов. После запуска загрузчика серверных классов Tomcat обрабатывает все JAR, которые вы помещаете в WEB-INF / lib, и все файлы .class, которые вы помещаете в WEB-INF/classes, как ПУТЬ к КЛАССУ вашего проекта.
Как только вы научитесь этому работать, следующее, что нужно сделать, это узнать о том, как использовать поисковые запросы JNDI. Опубликованный вами код не является хорошей идеей. Позвольте Tomcat управлять пулом соединений для вас.
Ответ №2:
Вам необходимо задать путь к классу следующим образом:
C:oraclexeapporacleproduct10.2.0serverjdbclibojdbc14.jar
путь к классу должен знать jar для использования, это производственный драйвер, а тот, у которого есть _g, предназначен для отладки. Использование подстановочного знака не работает для задания пути к классу java. Чтобы избежать необходимости настройки пути к классу, вы можете просто скопировать ojdbc14.jar в $tomcat.home/lib
каталог.
Ответ №3:
Просто распечатайте e.printStackTrace();
и посмотрите, как возникает исключение погоды…
если оно Class.forName()
включено, это означает, что путь к классу задан неправильно… все в порядке.. просто check..in путь к классу
Ответ №4:
Имя драйвера устарело.
Это должен быть oracle.jdbc.OracleDriver вместо того, что вы используете oracle.jdbc.driver.OracleDriver.
Ответ №5:
Необходимо включить ojdbc14.jar файл в вашей сборке развертывания в вашем проекте. Использование eclipse :
proj -> свойства -> Сборка развертывания -> выбрать / WebContent -> Добавить -> JavaBuildPathEnteries -> Далее -> ojdbc **.jar -> готово.