Если вы в порядке запуска glassfish от имени root, просто отредактируйте файл domain.xml, изменив порт 8080 на порт 80.
Если вы не хотите запускать glassfish с правами root (как вы не должны), то вы можете запускать glassfish с помощью apache. Я написал в блоге о работающем как Glassfish v2 и v3 за apahce httpd .
В качестве альтернативы, вы можете использовать iptables для маршрутизации всего трафика от порта 80 к порту 8080 следующим образом:
iptables -t nat -A OUTPUT -o lo -p tcp --dport 80 -j REDIRECT --to-port 8080
Что касается второй части вопроса - удаление корневого контекста, это просто вопрос развертывания вашего приложения с корневым контекстом "/". Есть снова несколько способов достичь этого. Вы можете установить корневой контекст для своего веб-приложения, используя веб-консоль администратора, во время или после его развертывания. Вы можете установить его через командную строку:
asadmin deploy --contextroot "/" webapp.war
Или вы можете установить для корневого контекста вашего файла sun-web.xml значение /.
.
Кроме того, вы можете установить веб-модуль по умолчанию для виртуального сервера, аналогично тому, как консоль веб-администратора является веб-модулем по умолчанию для порта 4848. Хотя я никогда не пробовал этого.
Ответ на отредактированный вопрос:
Чтобы изменить веб-модуль по умолчанию, из консоли администратора glassfish (localhost: 4848) перейдите:
Configuration -> Virtual Servers -> server
Там вы увидите раскрывающийся список «Веб-модуль по умолчанию». Выберите развернутое веб-приложение. Это приложение теперь будет отвечать на корневой URL. После этого я сам заметил, что после входа в систему я был перенаправлен в корневой каталог контекста. Возможно, это можно исправить, установив контекстную папку моего веб-приложения на "" / ", или используя
Еще одна возможность - использовать mod_proxy в apache httpd и сопоставить "/" порта 80 с "/ myWebApp" на порте 8080. Это полностью исключает описанный выше беспорядок.