Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / ServletContext was not found / 15 сообщений из 15, страница 1 из 1
21.03.2013, 13:46:27
    #38193140
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServletContext was not found
всем привет

создал класс с методом - для получения коннекта к БД в сервлетах =
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
public class DbClass extends HttpServlet{
  
  public static Connection getConnect(HttpServletRequest request) throws ServletException, IOException {
    
    Connection conn = null;
    
    String db_host = request.getServletContext().getInitParameter("db_host"),
            db_port = request.getServletContext().getInitParameter("db_port"),
            db_name = request.getServletContext().getInitParameter("db_name"),
            db_login = request.getServletContext().getInitParameter("db_login"),
            db_password = request.getServletContext().getInitParameter("db_password"),
            db_driver = request.getServletContext().getInitParameter("db_driver"),
            db_engine = request.getServletContext().getInitParameter("db_engine"),
            db_url = "jdbc:"+db_engine+"://"+db_host+":"+db_port+"/"+db_name+"?user="+db_login+"&password="+db_password;
    
    try {
      Class.forName(db_driver).newInstance();
      conn = DriverManager.getConnection(db_url);
    } catch(Exception e) {
      //
    }
    
    return conn;
  }
  
}


на локальном компе, с JDK 7, все работает

на сервере, с JDK 5, получаю такую вот хрень =
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
exception

javax.servlet.ServletException: Servlet execution threw an exception
root cause

java.lang.NoSuchMethodError: method javax.servlet.http.HttpServletRequest.getServletContext with signature ()Ljavax.servlet.ServletContext; was not found.
	my.DbClass.getConnect(DbClass.java:24)
	controller.TendersServlet.processRequest(TendersServlet.java:40)
	controller.TendersServlet.doGet(TendersServlet.java:123)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


неужели разница в версиях JDK настолько сильна, что не читается контекст из web.xml ?
...
Рейтинг: 0 / 0
21.03.2013, 13:52:55
    #38193163
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServletContext was not found
Класс HttpServletRequest в JDK вообще не находится. Он находится в контейнере сервлетов, в котором вы ваш код запускаете.
Если открыть JavaDoc этого метода
http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getServletContext%28%29
То можно заметить
RTFM Since:
Servlet 3.0
Это значит сто в сервлетах 2.x такого метода не было.
Не занимайтесть ...нёй, почитайте про JNDI DataSource
http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html
Не стоит конфигурирвать соединение с базой внутри приложения. Тогда ваше приложение будет требовать переконфигурации под каждый сервер где оно установлено.
...
Рейтинг: 0 / 0
21.03.2013, 15:52:07
    #38193486
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServletContext was not found
BlazkowiczОн находится в контейнере сервлетов, в котором вы ваш код запускаете.
то есть, если заменить Tomcat 6 , который сейчас стоит на сервере, на Tomcat 7.0.22.0 = то request.getServletContext().getInitParameter("db_host") будет отрабатываться?
...
Рейтинг: 0 / 0
21.03.2013, 15:54:46
    #38193494
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServletContext was not found
buyboyто есть, если заменить Tomcat 6 , который сейчас стоит на сервере, на Tomcat 7.0.22.0 = то request.getServletContext().getInitParameter("db_host") будет отрабатываться?
http://tomcat.apache.org/whichversion.html
может ещё зависеть от версии сервлетов, которую вы пропишете в web.xml.
...
Рейтинг: 0 / 0
21.03.2013, 15:59:22
    #38193509
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServletContext was not found
Blazkowiczможет ещё зависеть от версии сервлетов, которую вы пропишете в web.xml.ммм...
ну сейчас стоит
Код: xml
1.
2.
3.
4.
5.
6.
<web-app 
  version="2.5" 
  xmlns="http://java.sun.com/xml/ns/javaee" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
>

и на локальном Томкэте 7 отрабатывается же...

P.s. хотя на локали = JDK 7
...
Рейтинг: 0 / 0
21.03.2013, 16:04:21
    #38193529
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServletContext was not found
buyboyи на локальном Томкэте 7 отрабатывается же...
Бага томката. :)

buyboyP.s. хотя на локали = JDK 7
Это не имеет к вопросу никакого отношения.
...
Рейтинг: 0 / 0
21.03.2013, 16:11:13
    #38193551
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServletContext was not found
BlazkowiczbuyboyP.s. хотя на локали = JDK 7Это не имеет к вопросу никакого отношения.тут вот буржуи пишут Apache Tomcat 7.0.x requires Java 6 or later. Apache Tomcat 6.0.x required Java 5 .
= то есть при переходе на 7-й томкэт JDK 5 уже не проканает и придется колупаться с установкой и настройкой JDK 7
...
Рейтинг: 0 / 0
21.03.2013, 16:19:29
    #38193573
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServletContext was not found
buyboyпридется колупаться с установкой и настройкой JDK 7
Неделя работы. Не меньше.
...
Рейтинг: 0 / 0
21.03.2013, 16:24:49
    #38193585
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServletContext was not found
Blazkowicz Неделя работы. Не меньше. харэ прикалываться над начинающим... :)
насколько я понимаю = на одном сервере могут уживаться несколько версий JDK,
но получается, что в случае установки новой версии, мне нужно будет где-то указать - откуда брать эту новую версию?
а вот с этими серверными заморочками - именно колупаться
...
Рейтинг: 0 / 0
21.03.2013, 16:28:51
    #38193592
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServletContext was not found
buyboyнасколько я понимаю = на одном сервере могут уживаться несколько версий JDK,

Да, сколько угодно. JDK вообще к серверу не привязываются.
buyboyно получается, что в случае установки новой версии, мне нужно будет где-то указать - откуда брать эту новую версию?

Зависит от того как запускается Tomcat. Если bat/sh. то JAVA_HOME, если Win Service/Daemon, то, соответсвтенно, в его настройках.

buyboyа вот с этими серверными заморочками - именно колупаться
Это вообще не серверные заморочки. Это знание ОС и чтение мануала томката.
...
Рейтинг: 0 / 0
21.03.2013, 16:34:00
    #38193606
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServletContext was not found
Blazkowicz buyboyно получается, что в случае установки новой версии, мне нужно будет где-то указать - откуда брать эту новую версию? Зависит от того как запускается Tomcat. Если bat/sh. то JAVA_HOME, если Win Service/Daemon, то, соответсвтенно, в его настройках. а использование alternatives для java не поможет?
...
Рейтинг: 0 / 0
21.03.2013, 22:16:41
    #38194022
dmitriyche
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServletContext was not found
buyboyBlazkowicz пропущено...
Зависит от того как запускается Tomcat. Если bat/sh. то JAVA_HOME, если Win Service/Daemon, то, соответсвтенно, в его настройках. а использование alternatives для java не поможет?

Насколько я понимаю, каждая альтернатива указывает на одну конкретную реализацию в отдельно взятый момент времени, согласно Debian Alternatives System
The Debian alternatives system creates a way for several programs that fulfill the same or similar functions to be listed as alternative implementations that are installed simultaneously but with one particular implementation designated as the default. For example many systems have several text editors installed at the same time. The vi program is a classic example of an editor that has many implementations such as nvi, elvis, vim, etc. but which one should be designated as the default?

Один из примеров установки с альтернативами можно посмотреть в Installing Oracle Java 7 on Debian Linux .
...
Рейтинг: 0 / 0
22.03.2013, 08:43:34
    #38194227
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServletContext was not found
dmitriyche, спасибо за подсказку! прочитаю обязательно!
...
Рейтинг: 0 / 0
22.03.2013, 08:50:40
    #38194233
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServletContext was not found
двигаю далее: установил JDK7 = yum install java-1.7.0-openjdk
при вводе команды java -version получаю java version "1.7.0_09-icedtea"
вопрос первый: что такое icedtea ?

сначала боялся, что перезапуск 6-го томката на 7-м ждк приведет к неработоспособности сайтов,
но рестарт ничего не обрушил
вопрос второй: 6-й томкэт может работать под jdk 7 ?
...
Рейтинг: 0 / 0
22.03.2013, 12:35:14
    #38194644
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServletContext was not found
Blazkowicz,dmitriyche = спасибо за подсказки

сделал все что хотел:
- установил новую версию JDK
- перешел с Tomcat6 на Tomcat7

сайты сделанные под сочетание JDK5 + Tomcat6 работают и на JDK7 + Tomcat7
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / ServletContext was not found / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]