powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / ServletContext was not found
15 сообщений из 15, страница 1 из 1
ServletContext was not found
    #38193140
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем привет

создал класс с методом - для получения коннекта к БД в сервлетах =
Код: 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
ServletContext was not found
    #38193163
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Класс 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
ServletContext was not found
    #38193486
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczОн находится в контейнере сервлетов, в котором вы ваш код запускаете.
то есть, если заменить Tomcat 6 , который сейчас стоит на сервере, на Tomcat 7.0.22.0 = то request.getServletContext().getInitParameter("db_host") будет отрабатываться?
...
Рейтинг: 0 / 0
ServletContext was not found
    #38193494
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buyboyто есть, если заменить Tomcat 6 , который сейчас стоит на сервере, на Tomcat 7.0.22.0 = то request.getServletContext().getInitParameter("db_host") будет отрабатываться?
http://tomcat.apache.org/whichversion.html
может ещё зависеть от версии сервлетов, которую вы пропишете в web.xml.
...
Рейтинг: 0 / 0
ServletContext was not found
    #38193509
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
ServletContext was not found
    #38193529
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buyboyи на локальном Томкэте 7 отрабатывается же...
Бага томката. :)

buyboyP.s. хотя на локали = JDK 7
Это не имеет к вопросу никакого отношения.
...
Рейтинг: 0 / 0
ServletContext was not found
    #38193551
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
ServletContext was not found
    #38193573
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buyboyпридется колупаться с установкой и настройкой JDK 7
Неделя работы. Не меньше.
...
Рейтинг: 0 / 0
ServletContext was not found
    #38193585
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz Неделя работы. Не меньше. харэ прикалываться над начинающим... :)
насколько я понимаю = на одном сервере могут уживаться несколько версий JDK,
но получается, что в случае установки новой версии, мне нужно будет где-то указать - откуда брать эту новую версию?
а вот с этими серверными заморочками - именно колупаться
...
Рейтинг: 0 / 0
ServletContext was not found
    #38193592
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buyboyнасколько я понимаю = на одном сервере могут уживаться несколько версий JDK,

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

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

buyboyа вот с этими серверными заморочками - именно колупаться
Это вообще не серверные заморочки. Это знание ОС и чтение мануала томката.
...
Рейтинг: 0 / 0
ServletContext was not found
    #38193606
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz buyboyно получается, что в случае установки новой версии, мне нужно будет где-то указать - откуда брать эту новую версию? Зависит от того как запускается Tomcat. Если bat/sh. то JAVA_HOME, если Win Service/Daemon, то, соответсвтенно, в его настройках. а использование alternatives для java не поможет?
...
Рейтинг: 0 / 0
ServletContext was not found
    #38194022
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
ServletContext was not found
    #38194227
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriyche, спасибо за подсказку! прочитаю обязательно!
...
Рейтинг: 0 / 0
ServletContext was not found
    #38194233
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
двигаю далее: установил 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
ServletContext was not found
    #38194644
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,dmitriyche = спасибо за подсказки

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

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


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