Не думаю, что Glassfish запретит развертывать одно и то же приложение более одного раза, если у него другое имя.
Проблема, вероятно, связана с тем, как указывается дата дифференцирования. Обычный подход заключается в чтении этих свойств (например, строки подключения к базе данных, имени пользователя, пароля) из внешнего источника:
- файл внешних свойств
- JNDI
- (если существует) подготовка к серверу приложений
Однако вам потребуется способ поиска различных файлов в файловой системе в зависимости от развертывания. Вы можете прочитать (веб) контекстное имя при запуске (из ServletContext
) и искать:
String path = System.getProperty("config.location") + "/" + ctx.getServletContextName();