Kapitel 4. Tools und Tipps
4.1. Ressourcen, die bei der Migration helfen sollen
4.1.1. Ressourcen, die bei Ihrer Migration helfen sollen
- Tools
- Es gibt mehrere Tools, die bei der Automatisierung einiger der Konfigurationsänderungen helfen. Weitere Informationen finden Sie unter: Abschnitt 4.1.2, »Machen Sie sich mit den Tools vertraut, die Ihnen bei der Migration helfen können«.
- Tipps zur Fehlerbehebung
- Eine Liste der häufigsten Ursachen und der Behebungen von Problemen und Fehlern, die bei Ihrer Migration Ihrer Applikation auftreten können, finden Sie hier: Abschnitt 4.2.1, »Fehler- und Problembehebung bei der Migration«.
- Beispielmigrationen
- Beispiele von Applikationen, die zur JBoss EAP 6 migriert wurde finden Sie hier: Abschnitt 4.3.1, »Übersicht der Migration der Beispielapplikationen«.
4.1.2. Machen Sie sich mit den Tools vertraut, die Ihnen bei der Migration helfen können
Es gibt mehrere Tools, die Ihnen bei der Migration helfen. Nachfolgend sehen Sie eine Liste dieser Tools einschließlich einer Beschreibung davon, was diese tun.
- Tattletale
- Aufgrund der Änderung am modularen Klassenladen müssen Sie Applikationsabhängigkeiten finden und korrigieren. Tattletale kann Ihnen bei der Identifizierung abhängiger Modulnamen helfen und die Konfigurations-XML für Ihre Applikation generieren.
- IronJacamar Migrationstool
- Bei der JBoss EAP 6 werden Datenquellen und Ressourcenadapter nicht mehr in einer separaten Datei konfiguriert. Sie werden jetzt in der Serverkonfigurationsdatei konfiguriert und verwenden neue Schemas. Das IronJacamar Migrationstool kann Ihnen bei der Konvertierung der alten Konfiguration in das von der JBoss EAP 6 erwartete Format helfen.
4.1.3. Verwendung von Tattletale zum Auffinden von Applikationsabhängigkeiten
Aufgrund modularer Klassenladeänderungen bei der JBoss EAP 6 können ClassNotFoundException oder ClassCastException im JBoss-Protokoll auftreten, wenn Sie Ihre Applikation migrieren. Um diese Fehler zu beheben, müssen Sie die JARs auffinden, die die von den Ausnahmen spezifizierten Klassen enthalten.
jboss-deployment-structure.xml-Datei Ihrer Applikation verwendet werden.
Prozedur 4.1. Installation und Ausführung von Tattletale zum Auffinden von Applikationsabhängigkeiten
Anmerkung
4.1.4. Download und Installation von Tattletale
Prozedur 4.2. Download und Installation von Tattletale
- Laden Sie sich die Tattletale Version 1.2.0.Beta2 oder neuer unter http://sourceforge.net/projects/jboss/files/JBoss%20Tattletale.
- Entpacken Sie die Datei im Verzeichnis Ihrer Wahl.
- Bearbeiten Sie die
TATTLETALE_HOME/jboss-tattletale.properties-Datei wie folgt:- Fügen Sie der
profiles-Propertyee6undas7hinzu.profiles=java5, java6, ee6, as7
- Entfernen Sie die Kommentierung aus den
scan- undreports-Properties.
4.1.5. Erstellen und Prüfen des Tattletale Berichts
- Erstellen Sie mitteldes des folgenden Befehls einen Tattletale Bericht:
java -jarTATTLETALE_HOME/tattletale.jarAPPLICATION_ARCHIVEOUTPUT_DIRECTORYZum Beispiel:java -jar tattletale-1.2.0.Beta2/tattletale.jar ~/applications/jboss-seam-booking.ear ~/output-results/ - Öffnen Sie in einem Browser die
OUTPUT_DIRECTORY/index.html-Datei und klicken Sie auf "JBoss AS 7" unter dem "Reports"-Abschnitt.- Die linke Spalte listet die von der Applikation verwendeten Archive. Klicken Sie auf das ARCHIVE_NAME-Link um weitere Informationen zu dem Archiv zu erhalten, so etwa zum Speicherort, Manifestinformationen und Klassen, die es enthält.
- Das
jboss-deployment-structure.xml-Link in der rechten Spalte zeigt wie die Modulabhängigkeit für das in der linlken Spalte genannte Archiv festgelegt wird. Klicken Sie auf dieses Link um zu sehen, wie die Informationen zum Deployment-Abhängigkeitsmodul für dieses Archiv definiert werden.
4.1.6. Verwendung des IronJacamar Migrationstools zur Migration der Datenquellen- und Ressourcenadapterkonfigurationen
In früheren Versionen des Applikationsservers wurden Datenquellen und Ressourcenadapter unter Verwemdung einer Datei mit dem Suffix *-ds.xml konfiguriert und deployt. Die IronJacamar 1.1 Distribution enthält ein Migrationstool, das zur Konvertierung dieser Konfigurationsdateien in das von der JBoss EAP 6 erwartete Format verwendet werden kann. Das Tool parst die Quellkonfigurationsdatei der vorherigen Release, erstellt und schreibt dann die XML-Konfiguration in eine Output-Datei im neuen Format. Diese XML kann dann kopiert und im korrekten Untersystem in der JBoss EAP 6 Serverkonfigurationsdatei eingefügt werden. Dieses Tool versucht möglcihst effektiv alte Attribute und Elemente in das neue Format zu konvertieren, jedoch ist es möglich, dass zusätzliche Änderungen an der generierten Datei vorgenommen werden müssen.
Prozedur 4.3. Installation und Ausführung des IronJacamar Migrationstools
Anmerkung
4.1.7. Download und Installation des IronJacamar Migrationstools
Anmerkung
- Laden Sie die neuste Ausgabe von IronJacamar hier herunter: http://www.ironjacamar.org/download.html
- Entpacken Sie die heruntergeladene Datei im Verzeichnis Ihrer Wahl.
- Finden Sie das Converter-Skript in der IronJacamar_Distribution.
- Das Linux-Skript befindet sich hier:
IRONJACAMAR_HOME/doc/as/converter.sh - Die Windows Batch-Datei befindet sich hier:
IRONJACAMAR_HOME/doc/as/converter.bat
4.1.8. Verwenden Sie das IronJacamar Migrationstool für die Konvertierung einer Datenquellen-Konfigurationsdatei
Anmerkung
Prozedur 4.4. Konvertierung einer Datenquellen-Konfigurationsdatei
- Öffnen Sie eine Befehlszeile und navigieren Sie zum
IRONJACAMAR_HOME/doc/as/-Verzeichnis. - Führen Sie das Converter-Skript durch Eingabe des folgenden Befehls aus:
- Für Linux:
./converter.sh -dsSOURCE_FILETARGET_FILE - Für Microsoft Windows:
./converter.bat -dsSOURCE_FILETARGET_FILE
DieSOURCE_FILEist die Datenquelle -ds.xml-Datei aus der vorherigen Release. DieTARGET_FILEenthält die neue Konfiguration.Um zum Beispiel die sich im aktuellen Verzeichnis befindendejboss-seam-booking-ds.xml-Datenquellen-Konfigurationsdatei zu konvertieren, würden Sie folgendes eingeben:- Für Linux:
./converter.sh -dsjboss-seam-booking-ds.xmlnew-datasource-config.xml - Für Microsoft Windows:
./converter.bat -dsjboss-seam-booking-ds.xmlnew-datasource-config.xml
Beachten Sie, dass der Parameter für die Datenquellenkonversion-dslautet. - Kopieren Sie das
<datasource>-Element aus der Zieldatei und fügen Sie es unter dem<subsystem xmlns="urn:jboss:domain:datasources:1.1"><datasources>-Element in die Serverkonfigurationsdatei ein.Wichtig
Sie müssen den Server stoppen, ehe Sie die Server Konfigurations-Datei bearbeiten, damit Ihre Änderungen bei einem Server-Neustart als dauerhaft erstellt werden.- Falls Sie mit einer Managed Domain arbeiten, so kopieren Sie die XML in die
EAP_HOME/domain/configuration/domain.xml-Datei. - Falls Sie mit einem Standalone Server arbeiten, kopieren Sie die XML in die
EAP_HOME/standalone/configuration/standalone.xml-Datei.
- Bearbeiten Sie die generierte XML in der neuen Konfigurationsdatei.Hier ist ein Beispiel der
jboss-seam-booking-ds.xmlDatenquellen-Konfigurationsdatei für das Seam 2.2 Booking-Beispiel, das mit der JBoss EAP 5.x geliefert wurde:<?xml version="1.0" encoding="UTF-8"?> <datasources> <local-tx-datasource> <jndi-name>bookingDatasource</jndi-name> <connection-url>jdbc:hsqldb:.</connection-url> <driver-class>org.hsqldb.jdbcDriver</driver-class> <user-name>sa</user-name> <password></password> </local-tx-datasource> </datasources>Nachfolgend sehen Sie die Konfigurationsdatei, die durch Ausführung des Converter-Skripts generiert wurde. Die generierte Datei enthält ein<driver-class>-Element. Die bevorzugte Weise der Definition der Treiberklasse bei der JBoss EAP 6 ist mittels eines<driver>-Elements. Hier ist die resultierende XML in der JBoss EAP 6 Konfigurationsdatei mit Änderungen, um das<driver-class>-Element auszukommentieren und das entsprechende<driver>-Element hinzuzufügen:<subsystem xmlns="urn:jboss:domain:datasources:1.1"> <datasources> <datasource enabled="true" jndi-name="java:jboss/datasources/bookingDatasource" jta="true" pool-name="bookingDatasource" use-ccm="true" use-java-context="true"> <connection-url>jdbc:hsqldb:.</connection-url> <!-- Comment out the following driver-class element since it is not the preferred way to define this. <driver-class>org.hsqldb.jdbcDriver</driver-class> --> <!-- Specify the driver, which is defined later in the datasource --> <driver>h2<driver> <transaction-isolation>TRANSACTION_NONE</transaction-isolation> <pool> <prefill>false</prefill> <use-strict-min>false</use-strict-min> <flush-strategy>FailingConnectionOnly</flush-strategy> </pool> <security> <user-name>sa</user-name> <password/> </security> <validation> <validate-on-match>false</validate-on-match> <background-validation>false</background-validation> <use-fast-fail>false</use-fast-fail> </validation> <timeout/> <statement> <track-statements>false</track-statements> </statement> </datasource> <drivers> <!-- The following driver element was not in the XML target file. It was created manually. --> <driver name="h2" module="com.h2database.h2"> <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> </driver> </drivers> </datasources> </subsystem>
4.1.9. Verwenden Sie das IronJacamar Migrationstool für die Konvertierung einer Ressourcenadapter-Konfigurationsdatei
Anmerkung
- Öffnen Sie eine Befehlszeile und navigieren Sie zum
IRONJACAMAR_HOME/docs/as/-Verzeichnis. - Führen Sie das Converter-Skript durch Eingabe des folgenden Befehls aus:
- Für Linux:
./converter.sh -raSOURCE_FILETARGET_FILE - Für Microsoft Windows:
./converter.bat -raSOURCE_FILETARGET_FILE
DieSOURCE_FILEist die Ressourcenadapter -ds.xml-Datei der vorherigen Release. DieTARGET_FILEenthält die neue Konfiguration.Um zum Beispiel diemttestadapter-ds.xml-Ressourcenadapter-Konfigurationsdatei im aktuellen Verzeichnis zu konvertieren, würden Sie folgendes eingeben:- Für Linux:
./converter.sh -ramttestadapter-ds.xmlnew-adapter-config.xml - Für Microsoft Windows:
./converter.bat -ramttestadapter-ds.xmlnew-adapter-config.xml
Beachten Sie, dass der Parameter für die Konvertierung des Ressourcenadapters-raist. - Kopieren Sie das gesamte
<resource-adapters>-Element aus der Zieldatei und fügen Sie es in der Serverkonfigurationsdatei unter dem<subsystem xmlns="urn:jboss:domain:resource-adapters:1.1">-Element ein.Wichtig
Sie müssen den Server stoppen, ehe Sie die Server Konfigurations-Datei bearbeiten, damit Ihre Änderungen bei einem Server-Neustart als dauerhaft erstellt werden.- Falls Sie mit einer Managed Domain arbeiten, so kopieren Sie die XML in die
EAP_HOME/domain/configuration/domain.xml-Datei. - Falls Sie mit einem Standalone Server arbeiten, kopieren Sie die XML in die
EAP_HOME/standalone/configuration/standalone.xml-Datei.
- Bearbeiten Sie die generierte XML in der neuen Konfigurationsdatei.Nachfolgend sehen Sie ein Beispiel für die
mttestadapter-ds.xml-Ressourcenadapter-Konfigurationsdatei aus der JBoss EAP 5.x TestSuite:<?xml version="1.0" encoding="UTF-8"?> <!-- ==================================================================== --> <!-- ConnectionManager setup for jboss test adapter --> <!-- Build jmx-api (build/build.sh all) and view for config documentation --> <!-- ==================================================================== --> <connection-factories> <tx-connection-factory> <jndi-name>JBossTestCF</jndi-name> <xa-transaction/> <rar-name>jbosstestadapter.rar</rar-name> <connection-definition>javax.resource.cci.ConnectionFactory</connection-definition> <config-property name="IntegerProperty" type="java.lang.Integer">2</config-property> <config-property name="BooleanProperty" type="java.lang.Boolean">false</config-property> <config-property name="DoubleProperty" type="java.lang.Double">5.5</config-property> <config-property name="UrlProperty" type="java.net.URL">http://www.jboss.org</config-property> <config-property name="sleepInStart" type="long">200</config-property> <config-property name="sleepInStop" type="long">200</config-property> </tx-connection-factory> <tx-connection-factory> <jndi-name>JBossTestCF2</jndi-name> <xa-transaction/> <rar-name>jbosstestadapter.rar</rar-name> <connection-definition>javax.resource.cci.ConnectionFactory</connection-definition> <config-property name="IntegerProperty" type="java.lang.Integer">2</config-property> <config-property name="BooleanProperty" type="java.lang.Boolean">false</config-property> <config-property name="DoubleProperty" type="java.lang.Double">5.5</config-property> <config-property name="UrlProperty" type="java.net.URL">http://www.jboss.org</config-property> <config-property name="sleepInStart" type="long">200</config-property> <config-property name="sleepInStop" type="long">200</config-property> </tx-connection-factory> <tx-connection-factory> <jndi-name>JBossTestCFByTx</jndi-name> <xa-transaction/> <track-connection-by-tx>true</track-connection-by-tx> <rar-name>jbosstestadapter.rar</rar-name> <connection-definition>javax.resource.cci.ConnectionFactory</connection-definition> <config-property name="IntegerProperty" type="java.lang.Integer">2</config-property> <config-property name="BooleanProperty" type="java.lang.Boolean">false</config-property> <config-property name="DoubleProperty" type="java.lang.Double">5.5</config-property> <config-property name="UrlProperty" type="java.net.URL">http://www.jboss.org</config-property> <config-property name="sleepInStart" type="long">200</config-property> <config-property name="sleepInStop" type="long">200</config-property> </tx-connection-factory> </connection-factories>Nachfolgend sehen Sie die Konfigurationsdatei, die durch Ausführung des Converter-Skripts generiert wurde. Ersetzen Sie den Wert des class-name Attributs "FIXME_MCF_CLASS_NAME" in der generierten XML durch den korrekten Klassennamen der gemanagten Connection-Factory, in diesem Fall "org.jboss.test.jca.adapter.TestManagedConnectionFactory". Hier ist die resultierende XML in der JBoss EAP 6 Konfigurationsdatei mit Änderungen am<class-name>-Elementwert:<subsystem xmlns="urn:jboss:domain:resource-adapters:1.1"> <resource-adapters> <resource-adapter> <archive>jbosstestadapter.rar</archive> <transaction-support>XATransaction</transaction-support> <connection-definitions> <!-- Replace the "FIXME_MCF_CLASS_NAME" class-name value with the correct class name <connection-definition class-name="FIXME_MCF_CLASS_NAME" enabled="true" jndi-name="java:jboss/JBossTestCF" pool-name="JBossTestCF" use-ccm="true" use-java-context="true"> --> <connection-definition class-name="org.jboss.test.jca.adapter.TestManagedConnectionFactory" enabled="true" jndi-name="java:jboss/JBossTestCF" pool-name="JBossTestCF" use-ccm="true" use-java-context="true"> <config-property name="IntegerProperty">2</config-property> <config-property name="sleepInStart">200</config-property> <config-property name="sleepInStop">200</config-property> <config-property name="BooleanProperty">false</config-property> <config-property name="UrlProperty">http://www.jboss.org</config-property> <config-property name="DoubleProperty">5.5</config-property> <pool> <prefill>false</prefill> <use-strict-min>false</use-strict-min> <flush-strategy>FailingConnectionOnly</flush-strategy> </pool> <security> <application/> </security> <timeout/> <validation> <background-validation>false</background-validation> <use-fast-fail>false</use-fast-fail> </validation> </connection-definition> </connection-definitions> </resource-adapter> <resource-adapter> <archive>jbosstestadapter.rar</archive> <transaction-support>XATransaction</transaction-support> <connection-definitions> <!-- Replace the "FIXME_MCF_CLASS_NAME" class-name value with the correct class name <connection-definition class-name="FIXME_MCF_CLASS_NAME" enabled="true" jndi-name="java:jboss/JBossTestCF2" pool-name="JBossTestCF2" use-ccm="true" use-java-context="true"> --> <connection-definition class-name="org.jboss.test.jca.adapter.TestManagedConnectionFactory" enabled="true" jndi-name="java:jboss/JBossTestCF2" pool-name="JBossTestCF2" use-ccm="true" use-java-context="true"> <config-property name="IntegerProperty">2</config-property> <config-property name="sleepInStart">200</config-property> <config-property name="sleepInStop">200</config-property> <config-property name="BooleanProperty">false</config-property> <config-property name="UrlProperty">http://www.jboss.org</config-property> <config-property name="DoubleProperty">5.5</config-property> <pool> <prefill>false</prefill> <use-strict-min>false</use-strict-min> <flush-strategy>FailingConnectionOnly</flush-strategy> </pool> <security> <application/> </security> <timeout/> <validation> <background-validation>false</background-validation> <use-fast-fail>false</use-fast-fail> </validation> </connection-definition> </connection-definitions> </resource-adapter> <resource-adapter> <archive>jbosstestadapter.rar</archive> <transaction-support>XATransaction</transaction-support> <connection-definitions> <!-- Replace the "FIXME_MCF_CLASS_NAME" class-name value with the correct class name <connection-definition class-name="FIXME_MCF_CLASS_NAME" enabled="true" jndi-name="java:jboss/JBossTestCFByTx" pool-name="JBossTestCFByTx" use-ccm="true" use-java-context="true"> --> <connection-definition class-name="org.jboss.test.jca.adapter.TestManagedConnectionFactory" enabled="true" jndi-name="java:jboss/JBossTestCFByTx" pool-name="JBossTestCFByTx" use-ccm="true" use-java-context="true"> <config-property name="IntegerProperty">2</config-property> <config-property name="sleepInStart">200</config-property> <config-property name="sleepInStop">200</config-property> <config-property name="BooleanProperty">false</config-property> <config-property name="UrlProperty">http://www.jboss.org</config-property> <config-property name="DoubleProperty">5.5</config-property> <pool> <prefill>false</prefill> <use-strict-min>false</use-strict-min> <flush-strategy>FailingConnectionOnly</flush-strategy> </pool> <security> <application/> </security> <timeout/> <validation> <background-validation>false</background-validation> <use-fast-fail>false</use-fast-fail> </validation> </connection-definition> </connection-definitions> </resource-adapter> </resource-adapters> </subsystem>

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.