getServletContext (). getAttribute () возвращает ноль? - PullRequest
2 голосов
/ 18 сентября 2009

При попытке установить атрибуты контекста следующим образом:

void init()
{
    String testing = new String();
    testing = "This is a test";
    getServletContext().setAttribute("test", testing);
}

В одном сервлете и получение атрибута так:

String testing = (String) getServletContext().getAttribute("test")

Во втором сервлете testing равно null.

Значит ли это, что мои сервлеты находятся в разных контекстах? Если да, как я могу получить доступ к атрибутам контекста первого сервлета? Пожалуйста, предоставьте ссылку на это, поскольку я относительно новичок в java / servlets.

Я использую Netbeans с Glassfish 3.

РЕДАКТИРОВАТЬ: они оба находятся в одном веб-приложении и определены в одном и том же WEB-INF / web.xml

Ответы [ 3 ]

5 голосов
/ 18 сентября 2009

Если оба сервлета находятся в одном веб-приложении, по умолчанию порядок инициализации не определен. Возможно, ваш «второй» сервлет инициализируется перед «первым» (согласно порядку в web.xml). Вы можете исправить это, добавив тег загрузки при запуске в тег сервлета:

<servlet>
  <servlet-name>first<servlet-name>
  ...
  <load-on-startup>1<load-on-startup>
</servlet>

<servlet>
  <servlet-name>second<servlet-name>
  ...
  <load-on-startup>2<load-on-startup>
</servlet>
0 голосов
/ 18 сентября 2009

Контекст == WAR == webapps

Оба сервлета должны жить в одном и том же веб-приложении для совместного использования контекста. Проверьте, относятся ли оба класса сервлетов к одному и тому же WEB-INF / classes.

0 голосов
/ 18 сентября 2009

Я считаю, что два сервлета должны быть в веб-приложении, т. Е. Упакованы в один и тот же файл военных действий, чтобы это работало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...