GlassFish 3.1, как развернуть EAR с WAR в корне сервера? - PullRequest
6 голосов
/ 17 октября 2011

У меня есть EAR с WAR-файлом, который я развертываю на GlassFish 3.1

В настоящее время приложение запускается по адресу localhost: 8080 / myapp / index.jsf

Я хочу запустить егона localhost: 8080 / index.jsf

Для этого я изменил application.xml в EAR с contextRoot "myapp" на contextRoot = "/"

Когда я развернул EAR с помощьюинтерфейс администратора GlassFish, он выдает ошибку развертывания, затем, когда я пытаюсь перейти к интерфейсу администратора, он показывает домашнюю страницу GlassFish по умолчанию.Чтобы восстановиться, мне необходимо отменить развертывание EAR с помощью asadmin из командной строки, а затем выполнить перезапуск домена для перезапуска сервера.

Моя теория заключается в том, что мое приложение и интерфейс администратора GlassFish работают под root "/".

ВОПРОС: Как правильно развернуть мое веб-приложение в корне GlassFish 3.1?Или это плохая практика?

Спасибо!

Роб

Ответы [ 2 ]

3 голосов
/ 18 октября 2011

Самый простой способ - это glassfish-web.xml .

Это моя конфигурация, которая находится в моем каталоге WEB-INF.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app>
   <context-root>/myapplication</context-root>
</glassfish-web-app>

Как примечание, вам следует подумать об использовании войны вместо ушей. Glassfish 3.x, являющийся эталонной реализацией для JavaEE6, имеет возможность использовать war с EJB. То есть вы можете легко использовать свою войну со своим ejb без вкладыша. Это не только значительно уменьшит размер вашего приложения, но и даст вам хорошую практику с точки зрения проблем с загрузкой классов, занимаемой памяти и т. Д. *

3 голосов
/ 18 октября 2011

Rob

При развертывании из командной строки вы можете использовать аргумент asadmin для выбора корневого контекста. Это никогда не давало мне проблемы, которую вы описываете.

$ ASADMIN deploy --contextroot "/" your.war

Другой вариант - в настройках виртуального сервера выбрать веб-модуль по умолчанию, но лично я предпочитаю просто установить одно приложение на /.

.

Kevin

...