Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

Kapitel 7. Migrieren von älteren JBoss EAP Releases

7.1. Migrieren von JBoss EAP 5 zu JBoss EAP 7

Dieses Handbuch konzentriert sich auf die notwendigen Änderungen, um JBoss EAP 6 Applikationen erfolgreich auf JBoss EAP 7 bereitzustellen und auszuführen. Falls Sie dagegen beabsichtigen, Ihre Applikationen direkt von JBoss EAP 5 zu JBoss EAP 7 zu migrieren, gibt es eine Reihe von Informationsquellen, die Ihnen bei der Planung und Durchführung der Migration helfen. Wir empfehlen Ihnen die folgende Herangehensweise.

  1. Werfen Sie einen Blick auf Zusammenfassung der Änderungen an jeder Release in diesem Handbuch für eine Zusammenfassung der Änderungen an jeder JBoss EAP Release.
  2. Lesen Sie das JBoss EAP 6 Migrationshandbuch sowie dieses Handbuch, um sich mit den Inhalten beider Handbücher vertraut zu machen.
  3. Verwenden Sie die JBoss EAP 5 Component Upgrade Reference als Referenz für Migrationsinformationen über bestimmte Komponenten und Features.
  4. Das regelbasierte Windup-Migrationstool fügt weiterhin Regeln hinzu, um Ihnen bei der direkten Migration von JBoss EAP 5 zu JBoss EAP 7 zu helfen. Sie können dieses Tool verwenden, um Ihre Applikation zu analysieren und um detaillierte Berichte über die Änderungen zu generieren, die für die Migration zu JBoss EAP 7 erforderlich sind. Weitere Informationen finden Sie unter Verwenden von Windup zur Analyse von Applikationen zur Migration.
  5. Die Kundenportal Knowledgebase enthält derzeit Artikel und Lösungen, die bei der Migration von JBoss EAP 5 zu JBoss EAP 6 helfen. Im Laufe der Zeit sollen weitere Inhalte hinzugefügt werden, welche die Migration von JBoss EAP 5 zu JBoss EAP 7 behandeln.

7.2. Zusammenfassung der Änderungen an jeder Release

Bevor Sie Ihre Migration planen, sollten Sie sich über die Änderungen im Klaren sein, die an JBoss EAP 6 und JBoss EAP 7 vorgenommen wurden.

Das JBoss EAP 6 Migrationshandbuch behandelt Änderungen, die zwischen JBoss EAP 5 und JBoss EAP 6 vorgenommen wurden. Nachfolgend sehen Sie eine verkürzte Liste der bedeutsamsten Änderungen in JBoss EAP 6.

  • Neue Architektur basierend auf dem Modular Service Container implementiert
  • Zertifizierte Implementierung der Java Enterprise Edition 6 Spezifikation
  • Domain-Management, neue Deployment-Konfiguration sowie neue Verzeichnisstruktur und Skripte eingeführt
  • Auf neue portierbare JNDI-Namespaces standardisiert

Siehe Was ist neu und anders bei der JBoss EAP 6? im JBoss EAP 6 Migrationshandbuch für eine detaillierte Liste der Änderungen an dieser Release.

JBoss EAP 7 basiert auf derselben modularen Struktur wie JBoss EAP 6 und verwendet dieselben Grundlagen für Domain-Management, Deployment-Konfiguration, Verzeichnisstruktur und Skripte. Es verwendet auch dieselben standardisierten JNDI-Namespaces. Allerdings führt JBoss EAP 7 die folgenden Änderungen ein.

  • Unterstützung für die Java Enterprise Edition 7 Spezifikation hinzugefügt
  • Webserver durch Undertow ersetzt
  • JacORB IIOP-Implementierung durch eine Downstream-Branch des OpenJDK ORB ersetzt
  • Enthält Apache ActiveMQ Artemis als neuen Messaging-Provider
  • Entfernt die Subsysteme cmp, jaxr und threads
  • Entfernt Unterstützung für EJB Entity Beans

Eine vollständige Liste der Änderungen finden Sie unter Was ist neu JBoss EAP 7?

7.3. Lesen der Migrationshandbücher

Lesen Sie das gesamte Migrationshandbuch für jede Release, um über neue oder veraltete Features im Bilde zu sein und um die Serverkonfigurationen und Änderungen an Applikationen zu erfahren, die notwendig sind, um vorhandene Applikationen erfolgreich auf dieser Release auszuführen.

Da sich die zugrunde liegende Architektur von JBoss EAP 6 auf JBoss EAP 7 nicht geändert hat, haben viele der im JBoss EAP 6 Migrationshandbuch dokumentierten Änderungen noch Gültigkeit. Beispielsweise beziehen sich die in Von den meisten Applikationen benötigte Änderungen dokumentierten Änderungen auf die Neuerungen der zugrunde liegenden Architektur in JBoss EAP 6, und treffen somit ebenfalls auf diese Release zu. Die Änderungen am neuen, modularen Klassenladersystem sind beträchtlich und wirken sich auf die Paketierung und die Abhängigkeiten von fast allen JBoss EAP 5 Applikationen aus. Viele der unter Von Ihrer Applikationsarchitektur und -komponenten abhängige Änderungen aufgeführten Änderungen gelten ebenfalls weiterhin. Da JBoss EAP 7 jedoch den Webserver, ORB und Messaging-Provider ersetzt hat, die cmp, threads und jaxr Subsysteme entfernt sowie Unterstützung für EJB Entity Beans gestoppt hat, müssen Sie dieses Handbuch für jegliche Änderungen hinsichtlich dieser Komponenten zu Rate ziehen. Achten Sie besonders auf die Änderungen der Serverkonfiguration und die Änderungen bei Applikationsmigration, die in diesem Handbuch beschrieben werden, bevor Sie beginnen.

7.4. Liste der JBoss EAP 5 Komponenten-Upgrades

In der folgenden Tabelle finden Sie Informationen über das Migrieren von bestimmten Features oder Komponenten von JBoss EAP 5 zu JBoss EAP 7.

JBoss EAP 5
Feature oder Komponente
Zusammenfassung der Änderungen und
Links zu Migrationsinformationen

Packen der Applikation und Klassenladen

In JBoss EAP 6 wurde die bisherige hierarchische Klassenladestruktur ersetzt durch eine modulare Architektur basierend auf JBoss Modules. Das Packen von Applikationen hat sich ebenfalls geändert aufgrund der neuen modularen Klassenladestruktur. Diese Architektur wird auch in JBoss EAP 7 verwendet. Weitere Informationen über die neue modulare Architektur finden Sie im folgenden Kapitel im JBoss EAP 7 Development Guide.

Informationen über das Aktualisieren und Neupacken von Applikationen für die modulare Architektur finden Sie im folgenden Abschnitt im JBoss EAP 6 Migrationshandbuch.

Applikations-Konfigurationsdateien

Due to the changes in JBoss EAP 6 to use modular class loading, you might need to create or modify one or more application configuration files to add dependencies or to prevent automatic dependencies from loading. This has not changed in JBoss EAP 7. For details, see the following section in the JBoss EAP 6 Migration Guide.

Caching und Infinispan

JBoss Cache wurde ersetzt durch Infinispan zum internen Gebrauch durch den Server in JBoss EAP 6. In den folgenden Abschnitten im JBoss EAP 6 Migrationshandbuch finden Sie Informationen darüber, wie JBoss Cache im Applikationscode ersetzt werden muss.

Die Änderungen an der Infinispan-Caching-Strategie und -Konfiguration für JBoss EAP 7 werden im folgenden Abschnitt dieses Handbuchs erläutert.

Datenquellen und Ressourcenadapter

JBoss EAP 6 konsolidierte die Konfiguration von Datenquellen und Ressourcenadaptern in hauptsächlich eine Datei, und dies ist nach wie vor der Fall in JBoss EAP 7. Im folgenden Abschnitt des JBoss EAP 6 Migrationshandbuch finden Sie weitere Informationen.

Darüber hinaus wird die Fähigkeit zur Konfiguration eines generischen JMS-Ressourcenadapters zur Verbindung mit einem JMS-Provider in JBoss EAP 7 nicht mehr unterstützt. Siehe folgenden Abschnitt in diesem Handbuch.

Verzeichnisstruktur, Skripte und Deployment-Konfiguration

In JBoss EAP 6 haben sich Verzeichnisstruktur, Skripte und Deployment-Konfiguration geändert. Diese Änderungen gelten auch weiterhin in JBoss EAP 7. Weitere Informationen finden Sie im folgenden Abschnitt des JBoss EAP 6 Migrationshandbuchs.

EJB

Die Java EE 7 Spezifikation machte EJB 2.x und frühere Features optional, weshalb wir dringend empfehlen, Ihren Applikationscode zur Verwendung der EJB 3.x Spezifikation und JPA umzuschreiben. Informationen über veraltete Features und Änderungen, die zum Ausführen von EJB 2.x notwendig sind, finden Sie im folgenden Abschnitt im JBoss EAP 6 Migrationshandbuch.

In JBoss EAP 6 wird der Stateful EJB Cache und die Größe des Stateless Session Bean-Pools nun im ejb3-Subsystem der Serverkonfigurationsdatei konfiguriert. Der jboss-ejb3.xml-Deployment-Deskriptor ersetzt die jboss.xml-Deployment-Deskriptor-Datei. Weitere Informationen über diese Änderungen finden Sie im folgenden Abschnitt des JBoss EAP 6 Migrationshandbuchs.

Der standardmäßige Remote-Connector und Port wurde in JBoss EAP 7 geändert. Weitere Informationen dazu und über Serverkonfigurationsänderungen finden Sie in den folgenden Abschnitten dieses Handbuchs.

EJB Entity Beans werden in JBoss EAP 7 nicht unterstützt. Informationen über das Migrieren von Entity Beans zu JPA finden Sie in dem folgenden Abschnitt dieses Handbuchs.

Hibernate und JPA

In JBoss EAP 6 wurde Hibernate von Version 3 auf Version 4 aktualisiert. Diese Version von JBoss EAP implementierte zudem die JPA 2.0 Spezifikation und an JPA-Persistenzeigenschaften wurden Änderungen vorgenommen. Informationen darüber, wie Sie Ihre Applikationen an diese Änderungen anpassen, finden Sie im folgenden Abschnitt des JBoss EAP 6 Migrationshandbuchs.

JBoss EAP 7 implementiert JPA 2.1 und enthält Hibernate 5. Es aktualisiert Hibernate Search von Version 4.6.x auf Version 5.5.x. Andere Änderungen sind u.a. die Entfernung der Unterstützung für EJB Entity Beans und zusätzliche Aktualisierungen an JPA-Persistenzeigenschaften. Informationen darüber, wie sich diese Änderungen auf Ihre Applikationen auswirken, finden Sie in den folgenden Abschnitten in diesem Handbuch.

JAX-RS und RESTEasy

JBoss EAP 6 integrierte RESTEasy 2, was automatisch RESTEasy konfiguriert und Änderungen an Ihrer Applikationskonfiguration erforderlich macht. In dem folgenden Abschnitt im JBoss EAP 6 Migrationshandbuch finden Sie weitere Informationen.

JBoss EAP 7 enthält RESTEasy 3, und weitere Klassen gelten nun als veraltet. Die Jackson-Version hat sich von Version 1.9.9 auf Version 2.6.3 oder höher geändert. Einzelheiten über diese Änderungen finden Sie im folgenden Abschnitt dieses Handbuchs.

JBoss AOP

JBoss AOP (Aspect Oriented Programming) wurde aus JBoss EAP 6 entfernt. Informationen darüber, wie Applikationen refaktoriert werden müssen, die JBoss AOP verwenden, finden Sie im folgenden Abschnitt des JBoss EAP 6 Migrationshandbuchs.

JGroups und Clustering

Die Art und Weise, wie Clustering aktiviert und Bind-Adressen angegeben werden, hat sich JBoss EAP 6 geändert. Im folgenden Abschnitt im JBoss EAP 6 Migrationshandbuch finden Sie weitere Informationen.

In JBoss EAP 7 verwendet JGroups nun standardmäßig eine private Netzwerkschnittstelle anstelle einer öffentlichen Netzwerkschnittstelle, und es führt <channel>-Elemente im jgroups-Subsystem ein. JBoss EAP 7 enthält zudem die Undertow mod_cluster-Implementierung, und es führt eine neue API zum Erstellen von Singleton-Diensten sowie andere Clustering-Features ein. Diese Änderungen werden in den folgenden Abschnitten dieses Handbuchs erläutert.

JNDI

JBoss EAP 6 implementierte einen neuen, standardisierten, globalen JNDI-Namespace sowie eine Reihe zugehöriger Namespaces, die den verschiedenen Bereichen einer Java EE Applikation zugewiesen sind. In dem folgenden Abschnitt des JBoss EAP 6 Migrationshandbuchs finden Sie Informationen über die erforderlichen Applikationsänderungen, um die neuen JNDI-Namespace-Regeln zu verwenden.

JSF

JBoss EAP 6 enthielt JSF 2.0 und ermöglichte es Ihnen, Ihre Applikation zur Verwendung einer älteren Version zu konfigurieren. Dies ist in JBoss EAP 7 – was JSF 2.2 enthält – nicht mehr möglich. Der folgende Abschnitt in diesem Handbuch liefert weitere Informationen.

Protokollierung

JBoss EAP 6 introduced a new JBoss Logging framework that is still used in JBoss EAP 7. Applications that use third-party logging frameworks might be impacted by the modular class loading changes. Review the following section in the JBoss EAP 6 Migration Guide for information about these changes.

In JBoss EAP 7 gelten Annotationen im org.jboss.logging-Paket nun als veraltet, was Auswirkungen auf den Quellcode und auf Maven GAVs (groupId:artifactId:version) hat. Die Präfixe für alle Protokollnachrichten wurden ebenfalls geändert. Weitere Informationen über diese Änderungen finden Sie in den folgenden Abschnitten in diesem Handbuch.

Messaging und JMS

In JBoss EAP 6 ersetzte HornetQ das JBoss Messaging als standardmäßige JMS-Implementierung. In JBoss EAP 7 ersetzt ActiveMQ Artemis nun HornetQ als integrierten Messaging-Provider.

Der beste Ausgangspunkt zur Migration Ihrer Messaging-Konfiguration ist die JBoss EAP 7 Standard-Serverkonfiguration, auf die Sie anhand des folgenden Leitfadens Ihre aktuellen Messaging-Konfigurationsänderungen anwenden sollten.

Falls Sie die erforderlichen Änderungen für den Wechsel von JBoss Messaging nach HornetQ besser verstehen möchten, werfen Sie einen Blick auf den folgenden Abschnitt des JBoss EAP 6 Migrationshandbuchs.

Lesen Sie anschließend die folgenden Informationen über die Migration der HornetQ-Konfiguration und der zugehörigen Messaging-Daten in diesem Handbuch.

ORB

In JBoss EAP 6 wurde die JacORB-Konfiguration aus der EAP_HOME/server/production/conf/jacorb.properties-Datei in die Server-Konfigurationsdatei verlegt. JBoss EAP 7 ersetzte dann die JacORB IIOP-Implementierung durch eine Downstream-Branch des OpenJDK ORB.

Der beste Ausgangspunkt zur Migration Ihrer ORB-Konfiguration ist die JBoss EAP 7 Standard-Serverkonfiguration, auf die Sie anhand des JBoss EAP 7 Configuration Guide Ihre aktuellen ORB-Konfigurationsänderungen anwenden sollten.

Remote-Aufruf

Eine neue EJB-Client-API wurde in JBoss EAP 6 eingeführt für Remote-Aufrufe; falls Sie es allerdings vorzogen, Ihren Applikationscode nicht zur Verwendung der neuen API umzuschreiben, konnten Sie Ihren vorhandenen Code ändern, um die ejb:BEAN_REFERENCE für Remote-Zugriff auf EJBs zu verwenden. Im folgenden Abschnitt des JBoss EAP 6 Migrationshandbuchs erhalten Sie weitere Informationen.

In JBoss EAP 7 hat sich der Standard-Connector und der Standard-Remote-Verbindungsport geändert. Weitere Informationen finden Sie in den folgenden Abschnitten in diesem Handbuch.

Seam 2.x

Obwohl die offizielle Unterstützung für Seam 2.2 Applikationen in JBoss EAP 6 aufgegeben wurde, war es nach wie vor möglich, Abhängigkeiten für JSF 1.2 und Hibernate 3 zu konfigurieren, damit Seam 2.2 Applikationen auf dieser Release ausgeführt werden konnten. JBoss EAP 7 enthält nun JSF 2.2 und Hibernate 5; es unterstützt weder Seam 2.2 noch Seam 2.3, da das Red Hat JBoss Web Framework Kit das Ende seines Produktlebenszyklus erreicht hat. Wir empfehlen, Ihre Seam-Komponenten umzuschreiben zur Verwendung von Weld CDI Beans.

Sicherheit

Sicherheitsaktualisierungen in JBoss EAP 6 umfassten Änderungen an den Namen von Sicherheitsdomains und Änderungen bei der Konfiguration der Sicherheit für einfache Authentifizierung. Die Konfiguration des LDAP-Sicherheitsbereichs wurde in die Server-Konfigurationsdatei verlegt. In den folgenden Abschnitten des JBoss EAP 6 Migrationshandbuchs finden Sie weitere Informationen.

Aktualisierungen, die Auswirkungen auf die Sicherheit in JBoss EAP 7 haben, sind unter anderem Server-Konfigurationsänderungen und Applikationsänderungen. Informationen finden Sie in den folgenden Abschnitten dieses Handbuchs.

Spring-Applikationen

Spring 4.2.x ist die früheste, stabile Spring-Version, die von JBoss EAP 7 unterstützt wird. In den folgenden Abschnitten dieses Handbuchs finden Sie Informationen über Apache CXF Spring Webservices und Spring RESTEasy Integrationsänderungen.

Transaktionen

JBoss EAP 6 konsolidierte die Transaktionskonfiguration und verlegte sie in die Server-Konfigurationsdatei. Weitere Aktualisierungen betrafen Änderungen an den JTA-Knotenbezeichner-Einstellungen und die Art und Weise, wie JTS aktiviert wird. Details hierzu finden Sie im folgenden Abschnitt des JBoss EAP 6 Migrationshandbuchs.

Einige der Konfigurationsparameter für den Transaktionsmanager, die im transactions-Subsystem in JBoss EAP 6 verfügbar waren, haben sich in JBoss EAP 7 geändert. Weitere Informationen finden Sie in den folgenden Abschnitten in diesem Handbuch.

Valves

Undertow ersetzte JBoss Web in JBoss EAP 7 und Valves werden nicht mehr unterstützt. Siehe die folgenden Abschnitte in diesem Handbuch.

Web-Dienste

JBoss EAP 6 enthielt JBossWS 4. Informationen über die erforderlichen Änderungen für die aktualisierte Version finden Sie im folgenden Abschnitt im JBoss EAP 6 Migrationshandbuch.

JBoss EAP 7 führte JBossWS 5 ein. In dem folgenden Abschnitt in diesem Handbuch sind die erforderlichen Aktualisierungen aufgeführt.