Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Не могу законектится к ORACLE8i.1.7 при исполнении SERVLET'a  [new]
arthur1981
Member

Откуда:
Сообщений: 339
Не могу законектится к ORACLE8i.1.7 при исполнении SERVLET'a который
идет в поставке JBuilder 7.

Сервлет исполняется в Tomcat4.0.3 под JBuilder7
Вот что я делаю:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.* ;
import oracle.jdbc.driver.*;


public class Web extends HttpServlet {
...................................
static {
try{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
// после этой строчки вываливается
}catch(SQLException e)
{System.out.println("\n"+e.toString()+"\n");}
}
............................................
}

и веб сервер выдает

Apache Tomcat/4.0.3 - HTTP Status 500 - Internal Server Errortype Exception report - message Internal Server Error
description - The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.
.................................................................


Но самое интересное что те же самые строки выполняются нормально
в обычном Ява приложении

что делать? подскажите.
2 апр 04, 09:37    [609148]     Ответить | Цитировать Сообщить модератору
 Re: Не могу законектится к ORACLE8i.1.7 при исполнении SERVLET'a  [new]
softy
Member

Откуда: from Russia
Сообщений: 5911
1)Ошибка 500 - общего плана и скорее всего говорит о том, что сервлет возвращает неправильные заголовки.

2)В сервлете должен быть реализован метод doGet или doPost.

3)Если тебе нужно произвести какие-либо действия один раз при запуске сервлета, например создание соединения с БД - для этого используется специальный метод сервлета public void init() throws ServletException.

А вообще прежде чем самому колесо изобретать - возьми примеры от Oracle в папке
%ORACLE_HOME%\JDBC и посмотри как делается. Книжки почитай.
2 апр 04, 09:55    [609189]     Ответить | Цитировать Сообщить модератору
 Re: Не могу законектится к ORACLE8i.1.7 при исполнении SERVLET'a  [new]
arthur1981
Member

Откуда:
Сообщений: 339
2)В сервлете должен быть реализован метод doGet или doPost.

- они есть просто я их опустил для простоты.


3)Если тебе нужно произвести какие-либо действия один раз при запуске сервлета, ...................

- Смысл сервлета в том чтобы он подключался к Оракл только в методе
- doPost проверив до этого правильность параметров клиента
( это сделано для оптимизации скорости сервлета )
- да и перенеся
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
в void init() throws ServletException ни чего не помогло


А вообще прежде чем самому колесо изобретать - возьми примеры от Oracle в папке
%ORACLE_HOME%\JDBC и посмотри как делается.
- я как раз подключение оттуда и взял


- Интересно, что то же самое подключение в main методе обычного Ява
- приложения выполняется без проблем, а под Tomcat4.0.3 не хочет

- может проблема в драйвере от Oracle?
2 апр 04, 11:05    [609397]     Ответить | Цитировать Сообщить модератору
 Re: Не могу законектится к ORACLE8i.1.7 при исполнении SERVLET'a  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862
А Tomkat видит оракловые драйвера? Если в методе doPost() вывести что-то нижеследующее:


try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace(response.getWriter());
}


что получится?
2 апр 04, 11:29    [609486]     Ответить | Цитировать Сообщить модератору
 Re: Не могу законектится к ORACLE8i.1.7 при исполнении SERVLET'a  [new]
arthur1981
Member

Откуда:
Сообщений: 339
Да проблема была в том что Tomcat не видел драйверов Oracle.
Я нашел инет ресурс посвяшенный этой проблеме (на Английском)

http://www.jguru.com/faq/view.jsp?EID=528159
(там правда про JSP но для Servlet тоже годится)

В моем случае проблема решилась после переименования драйверов Oracle clasess12.zip на classes12.jar в дериктории ...WEB-INF\lib Tomcat'a.
2 апр 04, 17:49    [610664]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Не могу законектится к ORACLE8i.1.7 при исполнении SERVLET'a  [new]
Magenta
Member

Откуда: Королев
Сообщений: 52
У меня возникла та же проблема: не могу подсоединиться к бд из сервлета.
Стоит Oracle 10g, Intellij Idea 6.0, Apache Tomcat 5.5.
Если в сервлете пишу вот это:
try {
cn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521", "scott", "tiger");
}
catch (Exception e)
{out.println(e.getMessage()); }
выдает
Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
The Connection descriptor used by the client was:
localhost:1521
Если пишу так:
try {
cn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:MYDB", "scott", "tiger");
}
catch (Exception e)
{out.println(e.getMessage()); }
выдает
Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
localhost:1521:MYDB

пишу не так что-то?
14 июл 07, 21:45    [4389781]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить