GF 3.0.1 + Виртуальный сервер: www.myhost.com:8080/projectname-war => www.myhost.com.Как? - PullRequest
3 голосов
/ 05 января 2011

РЕДАКТИРОВАТЬ

Мне нужно изменить www.myhost.com:8080/myproject-war на www.myhost.com.Вот что я пытался:

Я настраиваю Virtual Server: server.У меня все еще есть прослушиватели сети по умолчанию: http-listener-1 и http-listner-2.Я изменяю веб-модуль по умолчанию на ScholarActive#ScholarActive-war.war (единственный вариант в раскрывающемся списке, поскольку я развертываю только 1 приложение).

Для docroot я пробую это

${com.sun.aas.instanceRoot}/applications/ScholarActive/ScholarActive-war_war

или этот

${com.sun.aas.instanceRoot}/applications/ScholarActive/

Оба не работают. На что должен указывать docroot, чтобы это работало?

я пытаюсь сделать следующее: когда я набираю localhost: 8080 / ScholarActive-war, то загрузка моего приложения, я хочусделать так, чтобы, если я наберу locahost: 8080, оно также загрузит приложение, а то, что осталось, поменяет порт на 80. Но не повезло.Любая идея?

Ответы [ 5 ]

6 голосов
/ 10 января 2011

Если вы в порядке запуска 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. Это полностью исключает описанный выше беспорядок.

0 голосов
/ 12 января 2011

Эта страница предоставляет мне решение.

http://blogs.oracle.com/alexismp/entry/glassfish_tip_have_your_application

Однако моя аутентификация безопасности - jdbcRealm, сразу после входа в систему glassfish автоматически добавляет my-project-war в мой URL. Так

www.myhost.com предложит мне войти

сразу после входа в систему он стал

www.myhost.com / мой-проект войны

почему это?

0 голосов
/ 05 января 2011

Я думаю, что веб-контейнер Glassfish основан на tomcat и tomcat. Вы можете назвать файл веб-приложения ROOT.WAR, который делает то, что вы хотите. Попробуйте позвонить в ваше веб-приложение ROOT.war и посмотреть, будет ли это то, что вы хотите, и дайте нам знать.


Нет способа сконфигурировать то, что вы хотите, из файла web.xml, поскольку он содержит только независимую настройку поставщика. Настройки, которые необходимо изменить, зависят от сервера приложений. Если вы отредактируете свое сообщение и дадите нам знать, какой сервер приложений вы используете, мы можем указать вам правильное направление, как делать то, что вы хотите.

0 голосов
/ 05 января 2011

Чаще всего я запускаю tomcat / jboss / jetty с apache и mod_proxy или mod_jk. Таким образом, apache прослушивает порт 80/443 и обращается к серверу j2ee через порт 8080/8443 (или 8009 для mod_jk).

0 голосов
/ 05 января 2011

В вашем веб-контейнере вы должны установить / myproject-war в качестве корневого пути, а затем изменить порт прослушивания с 8080 на 80. Перезапустите веб-контейнер, вы можете просматривать веб-страницы через http://localhost/, если вы хотите использовать http://www.myhost.com вместо этого добавьте строку вроде www.myhost.com 127.0.0.1 в конце файла хостов. Это работает только для локального веб-сайта.

...