Мой JBoss 7.1 (standalone.xml) настроен следующим образом:
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
<connector name="ajp" protocol="AJP/1.3" scheme="http" socket-binding="ajp"/>
<virtual-server name="default-host" enable-welcome-root="false" default-web-module="mydefaultapp">
<alias name="localhost"/>
<alias name="www.mydefaultapp.it"/>
</virtual-server>
<virtual-server name="secondApp" enable-welcome-root="false" default-web-module="secondApp">
<alias name="www.secondapp.com"/>
</virtual-server>
</subsystem>
'mydefaultapp' определяет "/" как корневой контекст в файле jboss-web.xml и отлично работает с mod_jk:
<VirtualHost *:80>
ServerName www.mydefaultapp.it
DocumentRoot /var/www/mydefaultapp
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/mydefaultapp>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
SetEnvIf Request_URI "/foto/*" no-jk
JkMount / ajp13
JkMount /* ajp13
</VirtualHost>
Теперь у меня есть эта война «secondapp», которая не определяет корневой контекст, поэтому предполагает «/ secondapp». Если я попытаюсь развернуть его с корневым контекстом '/', я получу эту ошибку:
УСТАНОВКА: не удалось обработать фазу УСТАНОВКИ развертывания «foo.war». Причина: org.jboss.msc.service.DuplicateServiceException: служба jboss.web.deployment.default-host./.realm уже зарегистрирована.
Если я разверну его с контекстным корнем '/secondapp', ничего не сработает. Просто www.secondapp.com заканчивается ошибкой 404 not found.
Возможным решением будет использование http-прокси с этой конфигурацией:
<VirtualHost *:80>
ServerName www.secondapp.com
ProxyPass / http://localhost:8080/secondapp/
ProxyPassReverse / http://localhost:8080/secondapp/
</VirtualHost>
который кажется работающим, но... я не могу получить доступ к ресурсам jsf (я продолжаю получать форму входа, есть проблема с моей безопасностью)
Не могли бы вы предложить мне правильную конфигурацию для двух доменов, двух войн с JBoss 7.1 + Apache2 + mod_jk. Помните, что у первого есть корневой контекст «/», а у второго — «/secondapp».