JBoss 7 Mehrere root-Kontext web-Anwendungen
Muss ich konfigurieren Sie zwei websites: www.foo.com und www.bar.net auf meinem Apache2+ JBoss7.- 1-Umfeld.
Apache sites-Konfiguration, Beispiel (Sie sind ähnlich wie jeder andere, außer für den site-Namen) :
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.foo.com
DocumentRoot /var/www/foo
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/foo>
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 "/photos/*" no-jk
JkMount /ajp13
JkMount /* ajp13
</VirtualHost>
In JBoss standalone.xml ich habe:
<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="bar">
<alias name="localhost"/>
<alias name="www.bar.net"/>
</virtual-server>
<virtual-server name="foo" enable-welcome-root="false" default-web-module="foo">
<alias name="www.foo.com"/>
</virtual-server>
</subsystem>
Während beide apps haben jboss-web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<security-domain>java:/jaas/foo</security-domain>
<context-root>/</context-root>
</jboss-web>
Bereitstellung von foo.Krieg führt zu:
INSTALLIEREN: Fehler beim verarbeiten des phase-INSTALLATION deployment "foo".Krieg"
Verursacht durch: org.jboss.msc.service.DuplicateServiceException: Service
jboss.web.- Bereitstellung.default-host./.Reich ist bereits registriert
Was ist die richtige Konfiguration? Wo ist der Fehler???
InformationsquelleAutor Fabio B. | 2013-02-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, dass das problem ist, dass Sie definiert haben das gleiche context-root für die beiden Anwendungen. Sie können nicht zwei Anwendungen mit der gleichen context-root bei der sametime. Eine mögliche Lösung wäre zu definieren, der einen anderen Kontext für jede Anwendung (/foo /bar beziehungsweise), und verwenden Sie die ProxyPass-Direktive in jeder Apache-virtualhost.
Diese Weise können Sie den Zugriff auf Ihre Anwendungen direkt über die Adressen: http://www.bar.com und http://www.foo.com bzw. (Beachten Sie, dass wenn Sie haben ein Apache fungiert als proxy, und der Verwendung seiner eigenen virtualhosts, gibt es keine Notwendigkeit, zu definieren, JBoss virtualhost).
Ein einfaches, aber vollständiges Beispiel wäre (in diesem Fall habe ich so konfiguriert haben, dass die jboss jmx-Konsole, in der gleichen Maschine wie der apache, zu erreichen http://www.foo.com):
Beachten Sie, dass müssen Sie einen umgekehrten Schrägstrich am Ende der Adresse.
Tut mir Leid, aber es funktioniert nicht, ich habe die beiden ProxyPass-Direktiven zu den oben genannten apache-virtual-host-Konfiguration. Wenn ich auf http://www.bar.com es fügt zwei Schrägstriche "//" in die url und safari behauptet, dass sich unmöglich auf den server zugreifen.
Haben Sie entfernt die JKMount-Direktive? wenn Sie proxyPass sollten Sie nicht brauchen. Auf der anderen Seite, wenn Sie nicht brauchen, die <Directory> Richtlinien, entfernen oder kommentieren Sie. Sie können stören, mit der ProxyPass-Direktive. Ich habe ein einfaches full-Konfiguration, Beispiel.
Ich habe gerade bemerkt, dass ich vergaß hinzuzufügen, einen umgekehrten Schrägstrich am Ende der Adresse. So, ein Teil der entfernen Sie die Richtlinien, die Sie nicht verwenden, stellen Sie sicher, dass Sie den backslash (habe ich korrigiert, Beispiel).
zumindest jetzt kann ich sehen das login-Formular, sondern das statische Ressourcen, die nicht gefunden werden kann und meine form nicht funktioniert <link type="text/css" href="/myapp/javax.faces.resource/css/login.css.htm;jsessionid=yLqJkKu1h7vG6xAenJn7TvTp.undefined">, Wie kann ich senden Sie eine pvt Nachricht bitte?
InformationsquelleAutor Toni
Es war gerade genug, um add foo zu meiner Konfiguration, arbeitet jetzt gut mit mod_jk. Ich habe darüber gebloggt: http://fabiobozzo.wordpress.com/2013/02/25/multiple-web-applications-with-jboss-and-apache/
InformationsquelleAutor Fabio B.
eigentlich der Weg, den er hatte, ist es in Ordnung. keine Notwendigkeit für die Verwendung von proxy-wenn er nicht will. Das fehlende Stück der original config ist, dass er nie erwähnt, dass die alias in die jboss-web.xml.
und in der zweiten app
loszuwerden, der Standard-web-Modul-tag. Sie erstellen ein paradox, mit diesem Chaos. Sie gehen entweder auf das eine oder das andere.. beides nicht. das ist für, wenn Sie nicht über den alias zugeordnet.
InformationsquelleAutor natedennis