Несколько копий одного приложения EAR на одном сервере с разными URL и базами данных - PullRequest
0 голосов
/ 26 февраля 2012

Я развернул веб-сервис с Jax-ws, который использует базу данных для хранения некоторого состояния.Я упаковал все внутри EAR-приложения и развернул его с помощью Glassfish.Я хочу развернуть несколько копий этого приложения на одном сервере (а затем и на одной физической машине), но Glassfish не позволяет этого.Каждое приложение должно иметь свою конечную точку WS (то есть разные URL и / или порт) и свою базу данных, чтобы каждый веб-сервис поддерживал свое собственное состояние.

Я пытался развернуть свое приложение на разных виртуальных серверах и т. Д.разные http слушатели.Таким образом, мое приложение отвечает на разные URL.К сожалению, приложение такое же, как и моя база данных.

Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 26 февраля 2012

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

Проблема, вероятно, связана с тем, как указывается дата дифференцирования. Обычный подход заключается в чтении этих свойств (например, строки подключения к базе данных, имени пользователя, пароля) из внешнего источника:

  • файл внешних свойств
  • JNDI
  • (если существует) подготовка к серверу приложений

Однако вам потребуется способ поиска различных файлов в файловой системе в зависимости от развертывания. Вы можете прочитать (веб) контекстное имя при запуске (из ServletContext) и искать:

 String path = System.getProperty("config.location") + "/" + ctx.getServletContextName();
...