Весна: Есть ли простой учебник без веб? - PullRequest
4 голосов
/ 27 августа 2009

Я пытаюсь создать приложение Spring (НЕ веб-приложение) для выполнения простых задач. В конце концов, они будут подключаться к другим приложениям Spring по сети, но сейчас я пока оставлю все просто. У меня есть класс CheckForNewItems (расширяющий таймер), который настроен на запуск каждые 10 секунд.

Я могу подтвердить, что он работает, вызвав его программно:

public class Tester {

  public static ApplicationContext context;

  private void loadContext() {
    String filename = "beans.xml";
    context = new FileSystemXmlApplicationContext(filename);
  }

  public static void main(String[] args) {
    Tester test = new Tester();
    test.loadContext();
    CheckNewItemsTask task = (CheckNewItemsTask)context.getBean("checkNewItemsTask");
  }
}

Выполнение этого работает, как и ожидалось, task.run () вызывается каждые 10 секунд. Теперь мне нужно решить, как развернуть это на сервере JBoss или Tomcat таким образом, чтобы он автоматически запускал задачу.

В большинстве учебных пособий, которые я нашел, описывается только как запустить Spring MVC и сервлеты, а не отдельное приложение. Кто-нибудь знает лучше?

Ура, Роб.

Ответы [ 2 ]

6 голосов
/ 27 августа 2009

Вам не нужны JBoss или Tomcat, чтобы сделать это. Если приложение работает без головы и вы не собираетесь добавлять пользовательский интерфейс, рассмотрите jsvc для unix или procrun для windows. Если вам нужна возможность контролировать и контролировать приложение и вам не нужен надлежащий пользовательский интерфейс для этого, вы можете посмотреть на JMX. Это будет работать на демоне без остальной части стека Java EE.

Если у вас есть проект maven и вы хотите легко превратить его в развертываемое приложение демона, вы можете использовать maven appassembler , чтобы автоматизировать процесс создания развертываемого демона, настраивая структуру каталогов: приложение, скрипты для запуска и остановки, библиотеки и файлы конфигурации.

1 голос
/ 27 августа 2009

Вам нужен сервлет, который настроен на автозапуск при развертывании. Затем сервлет может вызвать ваш класс «Tester» для запуска «автономного» процесса инициализации.

Если у вас нет сервлета (или, возможно, какого-либо другого процесса, связанного с сервером), ссылающегося на ваш код, тогда процесс инициализации никогда не будет запущен.

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