Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Менеджер сессий HttpSessionListener в Grails? Как задействовать? 
:(
    Опции темы
igilfanov
Дата 4.10.2011, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 4.10.2011

Репутация: нет
Всего: нет



Как задействовать менеджер сессий HttpSessionListener в Grails? 

Следующая конструкция на Java:

Код

package test;

import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

@WebListener
public class SessionListen implements HttpSessionListener {

    @Override
    public void sessionCreated(HttpSessionEvent arg0) {

       System.out.println("session created; id="+ arg0.getSession().getId());

    }

    @Override
    public void sessionDestroyed(HttpSessionEvent arg0) {

       System.out.println("session destroyed; id="+ arg0.getSession().getId());
       
    }
}

PM MAIL   Вверх
Stolzen
Дата 4.10.2011, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 1
Всего: 48



Прямо так и задействовать.

Только наверное в web.xml его нужно будет добавить, и убрать аннотацию с класса.


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
igilfanov
Дата 6.10.2011, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 4.10.2011

Репутация: нет
Всего: нет



1. Создал класс SessionListener.groovy:
Код

import javax.servlet.http.HttpSessionListener
import javax.servlet.http.HttpSessionEvent

class SessionListener implements HttpSessionListener {

        public void sessionCreated(HttpSessionEvent event) {
                println "HttpSession created";
        }

        public void sessionDestroyed(HttpSessionEvent event) {
                println "HttpSession destroyed";
        }
}


2. Положил этот файл в папку src/groovy/

3. Создал файл web.xml:
Код

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 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_3_0.xsd">
    <listener>
        <listener-class>SessionListener</listener-class>
    </listener>
    <welcome-file-list>
        <welcome-file>sessionValidate</welcome-file>
    </welcome-file-list>    
</web-app>


4. Положил этот файл в папку src/templates/war/

5. Выполняю

в итоге отображается страница:

Код

HTTP Status 404 - /my-application/

type Status report

message /my-application/

description The requested resource (/my-application/) is not available.
Apache Tomcat/6.0-snapshot



Что я делаю не так?

PM MAIL   Вверх
Stolzen
Дата 6.10.2011, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 1
Всего: 48



Скомпилированный класс появляется в директории classes war файла?
Вообще наверное вам стоит разобраться, как на джаве писать веб приложения, что такое сервлеты, фильтры, и т.п., а потом садиться за груви.


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
igilfanov
Дата 6.10.2011, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 4.10.2011

Репутация: нет
Всего: нет



Вот только что нашел на каком-то глухом сайте http://owahlen.blogspot.com/ . Пока исследую...

Что меня больше всего удивляет, почему эта тема не развернута в книгах Grails. Практически любая разработка web-приложений начинается с класса HttpSessionListener.

Добавлено через 4 минуты и 25 секунд
Цитата(Stolzen @ 6.10.2011,  09:50)
Скомпилированный класс появляется в директории classes war файла?
Вообще наверное вам стоит разобраться, как на джаве писать веб приложения, что такое сервлеты, фильтры, и т.п., а потом садиться за груви.

Слушайте Вы самый умный? Это особенности Grails: http://grails.1312388.n4.nabble.com/HttpSe...-td1477349.html
PM MAIL   Вверх
igilfanov
  Дата 6.10.2011, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 4.10.2011

Репутация: нет
Всего: нет



Сделал так: 

1. Скачал файл http://tomaslin.googlepages.com/templates.zip

2. Положил папку templates в src/templates/war/

3. Отредактировал файл src/templates/war/web.xml, добавив строчку 
Код

<listener>
        <listener-class>SessionListener</listener-class>
    </listener>


4. Создал контроллер
 
Код

package test

import javax.servlet.http.HttpSession
import org.springframework.web.context.request.RequestContextHolder

class TestController {

    def index = {        
        HttpSession session=RequestContextHolder.currentRequestAttributes().getSession(true);
    }
}


5. Выполнил прект test.

6. На странице "Welcome to Grails" запустил контроллер test.TestController

7. В консоле я вижу долгожданную надпись "HttpSession created"



PM MAIL   Вверх
Stolzen
Дата 6.10.2011, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 1
Всего: 48



Цитата(igilfanov @  6.10.2011,  11:01 Найти цитируемый пост)
Слушайте Вы самый умный? Это особенности Grails: http://grails.1312388.n4.nabble.com/HttpSe...-td1477349.html 

Прошу прощения, если задел. Неужели этот Listener отличается от всех других - и что его нельзя подключить?


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
igilfanov
  Дата 6.10.2011, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 4.10.2011

Репутация: нет
Всего: нет



Можно выполнив команду grails install-templates как было указано в http://grails.1312388.n4.nabble.com/HttpSe...-td1477349.html, далее по п.3.
Но у меня не пошло, каких то плагинов ему не хватает, причем org.jboss-совские... Странно...  Причем тут jboss незнаю. Лень было разбираться, да и бессмысленно, поэтому пришлось скачивать файл  http://tomaslin.googlepages.com/templates.zip
PM MAIL   Вверх
igilfanov
Дата 6.10.2011, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 4.10.2011

Репутация: нет
Всего: нет



Для полноты топика: на попытку выполнить команду grails install-templates выводит результат http://pastebin.com/W9ufjnnf
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Groovy & Grails | Следующая тема »


 




[ Время генерации скрипта: 0.1031 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.