Архитектура подключаемого модуля веб-приложения Java EE - PullRequest
0 голосов
/ 01 сентября 2011

У меня есть простое веб-приложение, которое получает данные через веб-сервис и сохраняет их в базе данных. Я использую CXF, Hibernate и Glassfish 3. Я очень новичок во всем этом, однако я пытаюсь выяснить, как я могу разработать простую модель плагинов, чтобы при запуске приложения сначала искать плагины в папке и вызывает экземпляр класса (?) для каждого плагина. Проблема в том, что я не совсем уверен, как запустить этот процесс (то есть, когда запускается приложение) - как узнать, когда приложение запускается впервые. Любые советы / комментарии приветствуются!

хорошо, вот пример класса с модификацией web.xml:

package foo.bar.startup;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class AppStartup implements ServletContextListener {

    public void contextInitialized(ServletContextEvent event) {
        // App started - do start up stuff
    }
    public void contextDestroyed(ServletContextEvent event) {
        // App stopped - do something
    }
}




  <listener>
    <listener-class>foo.bar.AppStartup</listener-class>
  </listener>

Ответы [ 2 ]

1 голос
/ 01 сентября 2011

Когда веб-приложение запускается, оно запускает ServletContextEvent, которое отправляется каждому зарегистрированному ServletContextListener. Эти слушатели должны быть настроены в web.xml приложения:

<listener>
    <listener-class>com.foo.bar.MyServletContextListener</listener-class>
</listener>
1 голос
/ 01 сентября 2011

Если вы хотите знать, когда приложение запускается / останавливается, вы можете реализовать ServletContextListener и зарегистрировать его в файле web.xml.

Вам следует взглянуть на OSGI - если вам нужна продуманная модель плагинов, с поддержкой развертывания новых плагинов во время выполнения, горячим повторным развертыванием плагинов и т. Д.

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