Tomcat 7 LifeCycleListener

1

Я искал дни о том, как заставить это работать, но я не имел успеха.

У меня есть проект, который прослушивает порт 6789, и когда происходит соединение, мне нужно выполнить некоторые конкретные действия. Для этого я пытаюсь использовать прослушиватель, чтобы в любое время, когда мои серверы Engine запускались при соединении.

В основном мобильное приложение собирается подключиться к экземпляру сервера, как только будет установлено соединение, серверу необходимо пройти аутентификацию пользователя, затем получить данные с телефона и поместить его в базу данных. Если есть другой способ сделать это, пожалуйста, дайте мне знать. Я просмотрел фильтры, но для этого нужен URL-адрес, и я также не знаю, как использовать сервлет, который будет срабатывать при подключении!

У меня есть это до сих пор в моем server.xml:

<Service name="Catalina">

    <Connector connectionTimeout="20000" port="6789" protocol="HTTP/1.1"
        redirectPort="8443" />

    <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />

    <Engine defaultHost="localhost" name="Catalina">
        <Listener className="Listeners.EngineListener" />

        <Realm className="org.apache.catalina.realm.LockOutRealm">
            <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                resourceName="UserDatabase" />
        </Realm>

        <Host appBase="webapps" autoDeploy="true" name="localhost"
            unpackWARs="true">

            <Valve className="org.apache.catalina.valves.AccessLogValve"
                directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log."
                suffix=".txt" />

            <Context docBase="PhoneListener" path="/PhoneListener"
                reloadable="true" source="org.eclipse.jst.jee.server:PhoneListener">
            </Context>
        </Host>
    </Engine>
</Service>

У меня есть полный путь к файлу в <Listener>. Точно так же я выполнил множество фильтров (аутентификация и noCache).

Класс, который реализует LifeCycleListener находится здесь "

package Listeners;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import org.apache.catalina.LifecycleEvent;
import org.apache.catalina.LifecycleListener;

@ManagedBean
@SessionScoped
public class EngineListener implements LifecycleListener 
{

    @Override
    public void lifecycleEvent(LifecycleEvent event)
    {
        // TODO Auto-generated method stub
        System.out.println("The engine listener is working!");
    }

}

Объявление бина здесь бессмысленно, я получаю тот же результат с объявлением bean и без него.

Я работаю над этим несколько дней.

Я установил maven и использовал его для исправления зависимостей. Я сделал новые проекты в новых рабочих пространствах, пытаясь исправить ошибки и ошибки класса. Я попытался переключиться с библиотеки Majorra JSF на библиотеку MyFaces, я получаю те же ошибки. Я честно нахожусь наедине с слушателем.

Есть идеи?

  • 1
    Какие ошибки? Я не вижу реальной проблемы, которую вы испытываете
  • 0
    вау, я забыл поставить это, я получаю исключение класса не найден в классе Listeners.PhoneListener
Теги:
tomcat
jsf-2

1 ответ

1
Лучший ответ

Оказывается, ошибок в моем коде не было, а ошибка с размещением файлов. Я экспортировал проект PhoneListener как .jar и поместил его в папку /lib сервера, на котором я жду подключения.

Сервер не смог найти мой Listeners.PhoneListener как это было не в стартовом каталоге самого сервера.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню