Verwendung von WildFly oder JBoss EAP mit Magnolia
Java ist eine der am häufigsten verwendeten Programmiersprachen für die Entwicklung von Unternehmensanwendungen. Laut Oracle gilt sie sogar als die Programmiersprache Nr. 1 für die heutigen Techniktrends.
Es gibt einige beliebte Java-Anwendungsserver wie Apache Tomcat, WebSphere, JBoss und WildFly. Magnolia verwendet standardmäßig Apache Tomcat.
Wenn Sie in Ihrem Unternehmen bereits JBoss oder WildFly einsetzen, möchten Sie vielleicht keinen Apache Tomcat einführen, um Magnolia zu betreiben. In diesem Artikel beschreibe ich daher, wie Sie Magnolia mit WildFly im Standalone-Modus einsetzen können. Die folgenden Schritte gelten auch für JBoss EAP.
Was ist JBoss und was ist WildFly?
JBoss Enterprise Application Platform (EAP) ist ein Open-Source-Java-Anwendungsserver, der von Red Hat entwickelt wurde.
JBoss Inc. entwickelte ursprünglich den JBoss Application Server (AS). Nach der Übernahme des Unternehmens durch Red Hat wurde JBoss zu einer Tochtergesellschaft von Red Hat. In der Folge wurde das JBoss AS-Community-Projekt in WildFly umbenannt, während JBoss Enterprise Application Platform (EAP) der Name des Unternehmensprodukts von Red Hat ist.
Verwendung von JBoss mit Magnolia
1) Auswahl einer zertifizierten Konfiguration
Zum Betrieb von Magnolia benötigen Sie eine kompatible Java-Laufzeitumgebung (JRE) oder ein Java Development Kit (JDK) sowie einen Java-Anwendungsserver wie WildFly oder JBoss EAP. Während JRE ausreicht, um Magnolia zu betreiben, sollten Sie JDK einsetzen, wenn Sie planen, eigenen Java-Code zu schreiben.
Prüfen Sie Magnolias zertifizierten Stack, um herauszufinden, welche Java-Versionen und Anwendungsserver für die Magnolia-Version, die Sie einsetzen wollen, zertifiziert sind. Prüfen Sie dann, welche Java-Versionen der von Ihnen gewählte Anwendungsserver unterstützt.
Unterstützte Java-Versionen für WildFly finden Sie in der Release-Ankündigung von WildFly. Die unterstützten Java-Versionen für JBoss EAP finden Sie im Red Hat-Kundenportal.
2) Hinzufügen von Magnolia zu WildFly
Laden Sie Wildflys "Java EE Full & Web Distribution" herunter und entpacken Sie sie. Gehen Sie in den Ordner "standalone/deployments" und erstellen Sie einen neuen Ordner mit dem Namen "<Name_der_Magnolia_Instanz>.war".
Laden Sie die Magnolia WAR-Datei herunter und entpacken Sie sie mit dem Befehl jar in den neuen Ordner. Löschen oder verschieben Sie die ursprüngliche WAR-Datei aus dem Verzeichnis.
Deploying your CMS to Azure Cloud
Our free blueprints guide you through deploying your CMS to Azure Cloud, using Magnolia CMS as an example.
3) Verhinderung von Bibliothekskonflikten zwischen Magnolia und WildFly
WildFly wird mit mehreren Java-Bibliotheken geliefert, die sich im Ordner "modules" befinden. Magnolia wird ebenfalls mit mehreren Java-Bibliotheken ausgeliefert, die im Ordner "WEB-INF/lib" zu finden sind. Einige Java-Bibliotheken werden sowohl mit WildFly als auch mit Magnolia geliefert.
Um Bibliothekskonflikte zu vermeiden, ist es wichtig, doppelte Bibliotheken auszuschließen. Gehen Sie zu standalone/deployments/<Name_der_Magnolia_Instanz>.war/WEB-INF und erstellen Sie eine Datei namens "jboss-deployment-structure.xml" mit folgendem Inhalt:
<?xml version="1.0"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<exclude-subsystems>
<subsystem name="weld" />
<subsystem name="jaxrs" />
<subsystem name="webservices" />
</exclude-subsystems>
<exclusions>
<module name="org.apache.log4j" />
<module name="org.slf4j" />
<module name="org.bouncycastle" />
</exclusions>
</deployment>
</jboss-deployment-structure>
Fügen Sie schließlich die folgende Zeile in die Datei magnolia.properties in standalone/deployments/<Name_der_Magnolia_Instanz>.war/WEB-INF/config/default ein: magnolia.definitions.classpath=info.magnolia
Dieser Parameter kennt nur einen Wert und ist erforderlich, wenn Sie auf WebSphere, Liberty, WildFly oder JBoss EAP bereitstellen.
4) Einsatz von Magnolia
Wenn WildFly gestartet wird, sucht es im Ordner "standalone/deployments" nach WAR-Dateien für die Bereitstellung. Da wir die WAR-Datei aufgelöst haben, müssen wir WildFly anweisen, den Inhalt des aufgelösten Ordners bereitzustellen.
Erstellen Sie eine Datei mit dem Namen "<Name_des_Ordners_mit_explodiertem_WAR>.dodeploy" in standalone/deployments. Wenn Sie beispielsweise den Ordner "magnoliaAuthor.war" benannt haben, muss der Name der neuen Datei "magnoliaAuthor.war.dodeploy" lauten.
WildFly ist nun bereit, Magnolia einzusetzen und wir können den Server starten. Gehen Sie zu "<JBoss_folder>/bin" und führen Sie standalone.sh aus.
Wenn Ihre Bereitstellung erfolgreich war, hat sich die oben genannte Dateinamenerweiterung in .deployed geändert.
Sie sollten in der Lage sein, sich mit Ihrer Magnolia-Instanz auf localhost:8080/<Name_der_Magnolia-Instanz> zu verbinden, während Magnolia darauf wartet, installiert zu werden.
Wenn Sie mehr über JBoss und Magnolia erfahren möchten, lesen Sie unsere technische Dokumentation Understanding JBoss with Magnolia.