2009-06-26 3 views
0

У меня здесь довольно чудовищное Java-приложение. На данный момент он только когда-либо был развернут на моей локальной установке Tomcat/MySQL.Правильный способ развернуть приложение J2EE на базе Hibernate на удаленном сервере

Для полноты приложения это сервер онлайн-игр, написанный с использованием Spring, Hibernate с MySQL в настоящее время на бэкэнд.

Теперь я могу легко упаковать WAR и получить его на удаленном сервере .. Проблема заключается в базе данных. В настоящее время он создается с помощью скрипта ANT, который использует Hibernate (в частности, задачу HBM2DDL Ant) для создания схемы, а затем заполняет db комбинацией статического SQL и пары парсеров на основе ant, которые читаются из других данных (XML в основном). После этого у меня есть полностью созданная БД, заполненная набором «запуска» игровых серверов.

Проблема в том, что в Java я немного зелёный. Я понятия не имею, как правильно установить это.

Должен ли я:

  1. Экспорт SQL из моего локального MySQL и вручную импортировать его на новом сервере? Eww.
  2. Сделать скрипт ANT менее громовым (в нем сейчас много жестко заданных каталогов) и запустить его на сервере?
  3. Элегантный вариант, о котором я не знаю?

Другое осложнение заключается в том, что ВОЙНА будет работать на разных серверах, чем будет установлена ​​база данных MySQL. Существует ли Java-книга или веб-ресурс, который всесторонне решает эти проблемы с развертыванием?

ответ

1

Я думаю, что есть 3 варианта:

  1. Измените свой ANT скрипт для нацеливания БД на удаленной машине. Вы можете запустить его на своем локальном компьютере, поэтому вам не нужно его менять: он найдет необходимые файлы в тех же местах. Основным недостатком этого метода является то, что выполнение большого количества SQL-запросов по сети (интернет) может быть медленным).
  2. Экспортировать схему из локальной (сборной) базы данных в новую базу данных. Он не обязательно должен быть SQL, если ваша база данных поддерживает некоторый двоичный формат. Обычно это самый быстрый и наименее подверженный ошибкам способ сделать это, хотя могут возникнуть некоторые очень тонкие проблемы, если конфигурация удаленной БД немного отличается от вашей локальной настройки (например, набора символов).
  3. Запустите сценарий ANT на вашем сервере. Самая большая проблема заключается в том, что на вашем сервере базы данных должны быть все необходимые инструменты (например, ant и java), а также все исходные файлы (сопоставления спящего режима), которые обычно (как сервер базы данных) не нужны.
+0

Спасибо за ответ. Похоже, что номер 2 является самым элегантным из трех решений. –

0

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

1

Я сделал что-то подобное, создав цели муравьев, чтобы направить скрипт муравья на удаленную машину, этот муравейник, имеющий цель для создания БД. Поскольку у вас уже есть цели муравьев для создания схемы и инициализации БД, вы можете просто направить существующий скрипт муравья на удаленный компьютер (при условии, что удаленная машина имеет тот же набор инструментов).

Вы можете использовать Scp муравей задачу сделать удаленную копию, и sshexec сделать удаленный вызов муравей и сценария.

Смежные вопросы