Skip to main content
Redhat Developers  Logo
  • Products

    Featured

    • Red Hat Enterprise Linux
      Red Hat Enterprise Linux Icon
    • Red Hat OpenShift AI
      Red Hat OpenShift AI
    • Red Hat Enterprise Linux AI
      Linux icon inside of a brain
    • Image mode for Red Hat Enterprise Linux
      RHEL image mode
    • Red Hat OpenShift
      Openshift icon
    • Red Hat Ansible Automation Platform
      Ansible icon
    • Red Hat Developer Hub
      Developer Hub
    • View All Red Hat Products
    • Linux

      • Red Hat Enterprise Linux
      • Image mode for Red Hat Enterprise Linux
      • Red Hat Universal Base Images (UBI)
    • Java runtimes & frameworks

      • JBoss Enterprise Application Platform
      • Red Hat build of OpenJDK
    • Kubernetes

      • Red Hat OpenShift
      • Microsoft Azure Red Hat OpenShift
      • Red Hat OpenShift Virtualization
      • Red Hat OpenShift Lightspeed
    • Integration & App Connectivity

      • Red Hat Build of Apache Camel
      • Red Hat Service Interconnect
      • Red Hat Connectivity Link
    • AI/ML

      • Red Hat OpenShift AI
      • Red Hat Enterprise Linux AI
    • Automation

      • Red Hat Ansible Automation Platform
      • Red Hat Ansible Lightspeed
    • Developer tools

      • Red Hat Trusted Software Supply Chain
      • Podman Desktop
      • Red Hat OpenShift Dev Spaces
    • Developer Sandbox

      Developer Sandbox
      Try Red Hat products and technologies without setup or configuration fees for 30 days with this shared Openshift and Kubernetes cluster.
    • Try at no cost
  • Technologies

    Featured

    • AI/ML
      AI/ML Icon
    • Linux
      Linux Icon
    • Kubernetes
      Cloud icon
    • Automation
      Automation Icon showing arrows moving in a circle around a gear
    • View All Technologies
    • Programming Languages & Frameworks

      • Java
      • Python
      • JavaScript
    • System Design & Architecture

      • Red Hat architecture and design patterns
      • Microservices
      • Event-Driven Architecture
      • Databases
    • Developer Productivity

      • Developer productivity
      • Developer Tools
      • GitOps
    • Secure Development & Architectures

      • Security
      • Secure coding
    • Platform Engineering

      • DevOps
      • DevSecOps
      • Ansible automation for applications and services
    • Automated Data Processing

      • AI/ML
      • Data Science
      • Apache Kafka on Kubernetes
      • View All Technologies
    • Start exploring in the Developer Sandbox for free

      sandbox graphic
      Try Red Hat's products and technologies without setup or configuration.
    • Try at no cost
  • Learn

    Featured

    • Kubernetes & Cloud Native
      Openshift icon
    • Linux
      Rhel icon
    • Automation
      Ansible cloud icon
    • Java
      Java icon
    • AI/ML
      AI/ML Icon
    • View All Learning Resources

    E-Books

    • GitOps Cookbook
    • Podman in Action
    • Kubernetes Operators
    • The Path to GitOps
    • View All E-books

    Cheat Sheets

    • Linux Commands
    • Bash Commands
    • Git
    • systemd Commands
    • View All Cheat Sheets

    Documentation

    • API Catalog
    • Product Documentation
    • Legacy Documentation
    • Red Hat Learning

      Learning image
      Boost your technical skills to expert-level with the help of interactive lessons offered by various Red Hat Learning programs.
    • Explore Red Hat Learning
  • Developer Sandbox

    Developer Sandbox

    • Access Red Hat’s products and technologies without setup or configuration, and start developing quicker than ever before with our new, no-cost sandbox environments.
    • Explore Developer Sandbox

    Featured Developer Sandbox activities

    • Get started with your Developer Sandbox
    • OpenShift virtualization and application modernization using the Developer Sandbox
    • Explore all Developer Sandbox activities

    Ready to start developing apps?

    • Try at no cost
  • Blog
  • Events
  • Videos

How to migrate server configurations to JBoss EAP 7.4

October 5, 2023
Francisco De Melo Junior
Related topics:
JavaOpen source
Related products:
Red Hat JBoss Enterprise Application Platform

Share:

    Before migrating your application from Red Hat JBoss Enterprise Application Platform (JBoss EAP) 7.1 to the latest version, 7.4, you'll first need to consider how to migrate from one server to the other. One aspect that is often overlooked: migrating the server configurations and all the features installed in the current server to the new one.

    The JBoss Server Migration Tool helps migrate server configuration files (standalone.xml and domain.xml) to the new installation. This saves precious time manually testing and migrating the server migrations.

    JBoss EAP versions align with the following subsystem versions:

    • JBoss EAP 7.4: Enterprise Java Beans (EJB) 3.9 (connectors) and modcluster 5.0 (proxy)
    • JBoss EAP 7.3: EJB 3.6 (connector-ref) and modcluster 5.0 (proxy)
    • EJB 7.1: EJB 3.5 (connector-ref) and modcluster 3.0 (mod-cluster-config)

    When to use the JBoss Server Migration Tool

    To migrate the server, use the embedded Server Migration Tool in JBoss EAP 7.4. The server migration toolkit is already embedded inside JBoss EAP and it lets you migrate each subsystem and migrate from one version to another (source to target). By embedded, I mean the server migration toolkit is simply a script (jboss-server-migration.sh/jboss-server-migration.bat) that you can use to migrate JBoss EAP configurations and it is found under JBOSS_HOME/bin (aka EAP_HOME).

    To solve the application migration problem, use Red Hat's migration toolkit for runtimes. The migration toolkit for applications is intended for Red Hat OpenShift Container Platform migrations (cloud-ready applications), not for JBoss EAP server application migrations.

    Migration output

    If you experience any problems running the script, you can refer to the $JBOSS_HOME/migration directory that contains the configuration, logs, and reports.

    $ cd /home/jboss-eap-7.4/migration
    $ ls
    configuration logs README.md reports 

    Each file's purpose is described below:

    • Logs: The logs show the migration output, which is the same as you will see on the screen.
    • Configuration: The configuration is the template used on the report. environment.properties is used for non-interactive mode. logging.properties contains the actual logging properties for the tool.
    • Reports: The report is generated in HTML/XML, so you can open it in any browser. The report has a simple template with the summary, the environment details, and the successfully executed tasks.
    • Results: After the migration, you can find the results in the configuration files.

    An interactive migration example

    The following example shows how to migrate from JBoss EAP 7.3 to JBoss EAP 7.4. You can also use these steps to migrate from JBoss EAP 7.2 to JBoss EAP 7.4.

    Why is this migration necessary? The EJB subsystem changed specific features (EJB 3.5 to EJB 3.9), and the MicroProfile subsystem was removed. This breaks the forward compatibility, meaning you cannot start JBoss EAP 7.4 with JBoss EAP 7.3 configurations because it will only work if MicroProfile is removed.

    Migration steps

    In this example migration, JBoss EAP 7.4 is the target and JBoss EAP 7.3 is the source. The example uses the interactive mode. If you are not using the interactive mode, the environment.properties file will come in handy.

    Follow these steps:

    1. Download the new version, JBoss EAP 7.4.
    2. Unzip it and set JBOSS_HOME to JBoss EAP 7.4; this will be your target server.
    3. Go to the source directory (i.e., JBoss EAP 7.3) and set export SOURCE_7_3 for that directory; this will be your source server.
    4. Go to the JBoss EAP 7.4 directory (cd $JBOSS_HOME/bin) and execute the following script: $./jboss-server-migration.sh --source /SOURCE_7_3
    5. This will prompt the standalone migration. Select yes and hit enter.
    6. Later on, select yes to migrate all configuration files. You might already have a deployment on the old JBoss EAP 7.0, so select no here to migrate the deployed application. This will not actually migrate the application, but deploy it in the target. Select no for the mode-domain migration.
      
      [user@user jboss-eap-7.4]$ ./bin/jboss-server-migration.sh --source /home/jboss-eap-7.3
      =JBoss Server Migration Tool= Retrieving servers...
      15:04:02,128 INFO [logger] SOURCE server name: JBoss EAP, version: 7.3.0.GA. 
      15:04:02,136 INFO [logger] TARGET server name: JBoss EAP, version: 7.4.0.GA. 
      # Server migration starting... # 
      15:04:02,171 INFO [ServerMigrationTask#1:1] --- Migrating modules requested by environment... #
      15:04:02,171 INFO [ServerMigrationTask#1:1] No modules to migrate. # Migrate the source's standalone server? yes/no? yes # 
      15:04:05,001 INFO [ServerMigrationTask#1:2] 
      --- Migrating standalone server... 
      # # Migrate all configurations? yes/no? no
      Migrate configuration standalone-cameleon.xml ? yes/no? no 
      ... Migrate configuration standalone_example.xml ? <----------------------- your yes/no? yes 
      # ... Migration Result: SUCCESS <---- success ... 
    7. Wait for the migration to complete.
    8. Review the migration output/log. The result file can be found in $JBOSS_HOME/standalone/configuration/standalone_example.xml.beforeMigration | standalone_example.xml.
    9. After finishing the process, go to the new JBoss EAP directory and start the instance.

    Domain mode migration

    The following refers to the domain mode migration:

    [user@user jboss-eap-7.4]$ cp /home/jboss-eap-7.3/domain/configuration/domain.xml /home/jboss-eap-7.3/domain/configuration/domain_cu.xml
    [user@user jboss-eap-7.4]$ clear [user@user jboss-eap-7.4]$ ./bin/jboss-server-migration.sh --source /home/jboss-eap-7.3
    ---------------------------------------------------------- ---- JBoss Server Migration Tool ----------------------- ---------------------------------------------------------- Retrieving servers...
    22:27:38,426 INFO [logger] SOURCE server name: JBoss EAP, version: 7.3.0.GA.
    22:27:38,434 INFO [logger] TARGET server name: JBoss EAP, version: 7.4.0.GA. ----------------------------------------------------------
    ---------------------------------------------------------- Server migration starting...
    22:27:38,473 INFO [ServerMigrationTask#1:1] --- Migrating modules requested by environment...
    22:27:38,473 INFO [ServerMigrationTask#1:1] No modules to migrate.
    Migrate the source's standalone server? yes/no? no
    Migrate the source's managed domain? yes/no? yes
    22:27:40,904 INFO [ServerMigrationTask#1:3] --- Migrating managed domain...
    22:27:40,933 INFO [ServerMigrationTask#1:3:3] Source's domain configurations found: [domain.xml, domain_cu.xml] Migrate all configurations? yes/no? no
    Migrate configuration domain.xml ? yes/no? no Migrate configuration domain_cu.xml ? yes/no? yes
    22:27:44,967 INFO [ServerMigrationTask#1:3:3:1] Migrating domain configuration domain_cu.xml...
    22:27:45,300 INFO [ServerMigrationTask#1:3:3:1:1] Unsupported extensions removed: [org.wildfly.extension.microprofile.opentracing-smallrye, org.wildfly.extension.microprofile.config-smallrye]
    22:27:45,555 INFO [ServerMigrationTask#1:3:3:1:2] Unsupported subsystems removed: [urn:wildfly:microprofile-opentracing-smallrye:1.0, urn:wildfly:microprofile-config-smallrye:1.0] 22:27:46,201 INFO [security] ELY00001: WildFly Elytron version 1.15.3.Final-redhat-00001
    22:27:48,362 INFO [ServerMigrationTask#1:3:3:1:5] Host-excludes configuration added.
    22:27:48,493 INFO [ServerMigrationTask#1:3:4] Source's host configurations found: [host-master.xml, host-slave.xml, host.xml] Migrate all configurations? yes/no? no
    Migrate configuration host-master.xml ? yes/no? no
    Migrate configuration host-slave.xml ? yes/no? no Migrate configuration host.xml ? yes/no? no Server migration done. 22:27:52,744 INFO [logger] --------------------------------------------------------- Task Summary --------------------------------------------------------- server ......................................... SUCCESS domain ........................................ SUCCESS domain-configurations ........................ SUCCESS domain-configuration(source=domain_cu.xml) .. SUCCESS --------------------------------------------------------- Migration Result: SUCCESS --------------------------------------------------------- 

    A non-interactive migration example

    For non-interactive migration, enter --interactive=false, setting the properties correctly on the file as follows:

    [user@user jboss-eap-7.4]$ ./bin/jboss-server-migration.sh --source /home/jboss-eap-7.3 --interactive=false
    ---------------------------------------------------------- ---- JBoss Server Migration Tool ----------------------- ---------------------------------------------------------- Retrieving servers...
    22:30:27,884 INFO [logger] SOURCE server name: JBoss EAP, version: 7.3.0.GA.
    22:30:27,891 INFO [logger] TARGET server name: JBoss EAP, version: 7.4.0.GA. ---------------------------------------------------------- ---------------------------------------------------------- Server migration starting...
    22:30:27,926 INFO [ServerMigrationTask#1:1] --- Migrating modules requested by environment...
    22:30:27,926 INFO [ServerMigrationTask#1:1] No modules to migrate. 
    22:30:27,927 INFO [ServerMigrationTask#1:2] --- Migrating standalone server...
    22:30:27,953 INFO [ServerMigrationTask#1:2:2] Source's standalone content migrated. 
    22:30:27,963 INFO [ServerMigrationTask#1:2:3] Source's standalone configurations found: [standalone-cameleon.xml, standalone-full-ha.xml, standalone-full.xml, standalone-ha-cu.xml, standalone-ha.xml, standalone-load-balancer.xml, standalone.xml, standalone_cu.xml] 
    22:30:27,965 INFO [ServerMigrationTask#1:2:3:1] Migrating standalone configuration standalone-cameleon.xml... 
    22:30:29,004 INFO [security] ELY00001: WildFly Elytron version 1.15.3.Final-redhat-00001 22:30:29,740 INFO [ServerMigrationTask#1:2:3:1:5] Subsystem health added. 
    22:30:29,775 INFO [ServerMigrationTask#1:2:3:1:6] Subsystem metrics added. 
    22:30:29,787 INFO [ServerMigrationTask#1:2:3:1:7] Security realms migrated. 
    22:30:29,796 INFO [ServerMigrationTask#1:2:3:1:8:2] Non-persistent deployments found in /home/jboss-eap-7.3/standalone/deployments: [security-test.war, jsp_cdi_servlet.war, EjbSecure.jar, jaxrs-client-sources.jar, testservlet.war, EjbPrint.jar, HelloServlet.war, jaxrs-client.war] 
    22:30:29,833 INFO [ServerMigrationTask#1:2:3:2] Migrating standalone configuration standalone-full-ha.xml... 
    22:30:29,919 INFO [ServerMigrationTask#1:2:3:2:1] Unsupported extensions removed: [org.wildfly.extension.microprofile.health-smallrye, org.wildfly.extension.microprofile.metrics-smallrye, org.wildfly.extension.microprofile.opentracing-smallrye, org.wildfly.extension.microprofile.config-smallrye] 
    22:30:29,996 INFO [ServerMigrationTask#1:2:3:2:2] Unsupported subsystems removed: [urn:wildfly:microprofile-opentracing-smallrye:1.0, urn:wildfly:microprofile-health-smallrye:2.0, urn:wildfly:microprofile-metrics-smallrye:2.0, urn:wildfly:microprofile-config-smallrye:1.0] 22:30:30,515 INFO [ServerMigrationTask#1:2:3:2:5] Subsystem health added. 22:30:30,549 INFO [ServerMigrationTask#1:2:3:2:6] Subsystem metrics added. 22:30:30,558 INFO [ServerMigrationTask#1:2:3:2:7] Security realms migrated. 22:30:30,597 INFO [ServerMigrationTask#1:2:3:3] Migrating standalone configuration standalone-full.xml... 
    22:30:30,673 INFO [ServerMigrationTask#1:2:3:3:1] Unsupported extensions removed: [org.wildfly.extension.microprofile.health-smallrye, org.wildfly.extension.microprofile.metrics-smallrye, org.wildfly.extension.microprofile.opentracing-smallrye, org.wildfly.extension.microprofile.config-smallrye] 
    22:30:30,751 INFO [ServerMigrationTask#1:2:3:3:2] Unsupported subsystems removed: [urn:wildfly:microprofile-opentracing-smallrye:1.0, urn:wildfly:microprofile-health-smallrye:2.0, urn:wildfly:microprofile-metrics-smallrye:2.0, urn:wildfly:microprofile-config-smallrye:1.0] 
    22:30:30,923 INFO [ServerMigrationTask#1:2:3:3:5] Subsystem health added.
    22:30:30,960 INFO [ServerMigrationTask#1:2:3:3:6] Subsystem metrics added.
    22:30:30,970 INFO [ServerMigrationTask#1:2:3:3:7] Security realms migrated. 
    22:30:31,002 INFO [ServerMigrationTask#1:2:3:4] Migrating standalone configuration standalone-ha-cu.xml... 
    22:30:31,088 INFO [ServerMigrationTask#1:2:3:4:1] Unsupported extensions removed: [org.wildfly.extension.microprofile.health-smallrye, org.wildfly.extension.microprofile.metrics-smallrye, org.wildfly.extension.microprofile.opentracing-smallrye, org.wildfly.extension.microprofile.config-smallrye] 22:30:31,169 INFO [ServerMigrationTask#1:2:3:4:2] Unsupported subsystems removed: [urn:wildfly:microprofile-opentracing-smallrye:1.0, urn:wildfly:microprofile-health-smallrye:2.0, urn:wildfly:microprofile-metrics-smallrye:2.0, urn:wildfly:microprofile-config-smallrye:1.0] 22:30:31,192 ERROR [logger] Migration failed: org.jboss.migration.core.ServerMigrationFailureException: java.lang.IllegalStateException: Migration of module com.oracle:main required, but module not found in source server. at org.jboss.migration.wfly10.config.task.module.ConfigurationModulesMigrationTaskFactory$Task.migrateModules(ConfigurationModulesMigrationTaskFactory.java:90) [jboss-server-migration-wildfly10.0-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.jboss.ModulesMigrationTask.run(ModulesMigrationTask.java:67) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.env.SkippableByEnvServerMigrationTask.run(SkippableByEnvServerMigrationTask.java:47) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.task.TaskExecutionImpl.run(TaskExecutionImpl.java:169) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.task.TaskExecutionImpl.execute(TaskExecutionImpl.java:159) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.task.TaskContextImpl.execute(TaskContextImpl.java:68) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.task.TaskContextImpl.execute(TaskContextImpl.java:32) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.wfly10.config.task.ServerConfigurationMigration$1.run(ServerConfigurationMigration.java:88) [jboss-server-migration-wildfly10.0-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.task.TaskExecutionImpl.run(TaskExecutionImpl.java:169) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.task.TaskExecutionImpl.execute(TaskExecutionImpl.java:159) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.task.TaskContextImpl.execute(TaskContextImpl.java:68) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.task.TaskContextImpl.execute(TaskContextImpl.java:32) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.wfly10.config.task.ServerConfigurationsMigration$Task.migrateConfig(ServerConfigurationsMigration.java:151) [jboss-server-migration-wildfly10.0-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.wfly10.config.task.ServerConfigurationsMigration$Task.migrateAllConfigs(ServerConfigurationsMigration.java:120) [jboss-server-migration-wildfly10.0-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.wfly10.config.task.ServerConfigurationsMigration$Task.run(ServerConfigurationsMigration.java:113) [jboss-server-migration-wildfly10.0-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.task.TaskExecutionImpl.run(TaskExecutionImpl.java:169) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.task.TaskExecutionImpl.execute(TaskExecutionImpl.java:159) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.task.TaskContextImpl.execute(TaskContextImpl.java:68) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.task.TaskContextImpl.execute(TaskContextImpl.java:32) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.wfly10.config.task.StandaloneServerMigration$1.run(StandaloneServerMigration.java:61) [jboss-server-migration-wildfly10.0-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.console.UserConfirmationServerMigrationTask.runTask(UserConfirmationServerMigrationTask.java:58) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.console.UserConfirmationServerMigrationTask.run(UserConfirmationServerMigrationTask.java:63) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.env.SkippableByEnvServerMigrationTask.run(SkippableByEnvServerMigrationTask.java:47) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.task.TaskExecutionImpl.run(TaskExecutionImpl.java:169) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.task.TaskExecutionImpl.execute(TaskExecutionImpl.java:159) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.task.TaskContextImpl.execute(TaskContextImpl.java:68) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.task.TaskContextImpl.execute(TaskContextImpl.java:32) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.wfly10.config.task.ServerMigration.run(ServerMigration.java:45) [jboss-server-migration-wildfly10.0-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.wfly10.WildFlyServer10.migrate(WildFlyServer10.java:40) [jboss-server-migration-wildfly10.0-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.ServerMigration$1.run(ServerMigration.java:153) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.task.TaskExecutionImpl.run(TaskExecutionImpl.java:169) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.ServerMigration.run(ServerMigration.java:160) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at
    org.jboss.migration.cli.CommandLineServerMigration.main(CommandLineServerMigration.java:131) [jboss-server-migration-cli-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at
    org.jboss.modules.Module.run(Module.java:353) [jboss-modules.jar:1.11.0.Final-redhat-00001] at org.jboss.modules.Module.run(Module.java:321) [jboss-modules.jar:1.11.0.Final-redhat-00001] at org.jboss.modules.Main.main(Main.java:617) [jboss-modules.jar:1.11.0.Final-redhat-00001] Caused by: java.lang.IllegalStateException: Migration of module com.oracle:main required, but module not found in source server. at org.jboss.migration.core.jboss.ModulesMigrationTask$ModuleMigrator.migrateModule(ModulesMigrationTask.java:128) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.core.jboss.ModulesMigrationTask$ModuleMigrator.migrateModule(ModulesMigrationTask.java:118) [jboss-server-migration-core-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.wfly10.config.task.module.DatasourcesJdbcDriversModulesFinder.processElement(DatasourcesJdbcDriversModulesFinder.java:44) [jboss-server-migration-wildfly10.0-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.wfly10.config.task.module.ConfigurationModulesMigrationTaskFactory$Task.processElement(ConfigurationModulesMigrationTaskFactory.java:101) [jboss-server-migration-wildfly10.0-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] at org.jboss.migration.wfly10.config.task.module.ConfigurationModulesMigrationTaskFactory$Task.migrateModules(ConfigurationModulesMigrationTaskFactory.java:86) [jboss-server-migration-wildfly10.0-1.10.0.Final-redhat-00007.jar:1.10.0.Final-redhat-00007] ... 35 more 
    22:30:31,196 INFO [logger] ---------------------------------------------------------------------------------------------------------- Task Summary ---------------------------------------------------------------------------------------------------------- server .......................................................................................... FAIL standalone ..................................................................................... FAIL contents.standalone.migrate-content-dir ....................................................... SUCCESS contents.standalone.migrate-content(path=fd/99b2631295d816547650c92b61498cf687bae4/content) .. SUCCESS contents.standalone.migrate-content(path=e4/fc7714c5b1a309a87dbb074a3d7b88fd339d18/content) .. SUCCESS contents.standalone.migrate-content(path=30/9de064883cdf625c997beb8323b5b80dc154bf/content) .. SUCCESS contents.standalone.migrate-content(path=f6/633900183b2cd81cf7d5f7a4d7bbdde96734b9/content) .. SUCCESS contents.standalone.migrate-content(path=5e/bd422eabb65d1f6a56a563294e80d6cf45b1a1/content) .. SUCCESS contents.standalone.migrate-content(path=9b/336f2be3de943dea660245aea239b4791cc48c/content) .. SUCCESS contents.standalone.migrate-content(path=0a/ed60bd9874dee796c3652f117167a51959d0d7/content) .. SUCCESS standalone-configurations ..................................................................... FAIL standalone-configuration(source=standalone-cameleon.xml) ..................................... SUCCESS standalone-configuration(source=standalone-full-ha.xml) ...................................... SUCCESS standalone-configuration(source=standalone-full.xml) ......................................... SUCCESS standalone-configuration(source=standalone-ha-cu.xml) ........................................ FAIL ---------------------------------------------------------------------------------------------------------- Migration Result: FAIL ----------------------------------------------------------------------------------------------------------

    Tips for migrating files

    Tip #1: Don't try to migrate a broken file, a file with unparsable content, or files cut in the middle; the parsing process needs to work for the migration to be successful. After the migration, the migration tool will spawn an embedded server and run it to test. Depending on the error, it might generate a partially migrated file, which will not work. The file will have the configuration resulting from the migration.

    Do not leave the migrated file with the standard names, such as standalone.xml or domain.xml; doing so will overwrite the original files. In this case, use a different name for the migration.

    Tip #2: After the migration, do a thorough review and test with the resulting configuration to verify it has a similar (expected) behavior.

    Migrate the data source

    You will need to migrate the data source, depending on the installation. Bear in mind that Red Hat recommends installing a JDBC driver as a core module instead of directly deploying a driver jar file through the management console. Follow the instructions in the article What is the recommended way to install a JDBC driver in EAP 6/7?

    Migrating custom scripts

    Custom scripts will not be migrated; they are basically ignored by the Server Migration Tool, which can only be addressed after the migration. You will need to migrate the custom scripts manually (copy them) and then do the respective due diligence to ensure they still work.

    Migrating JBoss EAP XP to JBoss EAP

    It is not possible to directly migrate from JBoss EAP XP to JBoss EAP because they are different products; if you were to migrate anything to JBoss XP, it would have to be from an XP installation. So, we will follow the steps for XP installation and then migrate from XP to another XP.

    However, you will encounter the following issue:

    22:04:05,439 ERROR [logger] Migration failed:
    org.jboss.migration.core.ServerMigrationFailureException: java.lang.IllegalArgumentException: WFCMTOOL000004: Server name = JBoss EAP XP, version = 7.4.1.GA does not support migration from server name = JBoss EAP, version = 7.3.0.GA. at org.jboss.migration.core.task.TaskExecutionImpl.run(TaskExecutionImpl.java:174) [jboss-s ...
    Caused by: java.lang.IllegalArgumentException: WFCMTOOL000004: Server name = JBoss EAP XP, version = 7.4.1.GA does not support migration from server name = JBoss EAP, version = 7.3.0.GA. 

    Troubleshooting the Server Migration Tool

    Basically, the migration logs will be transparent, which is very helpful for diagnosing specific issues. One of the most common problems is migrating a version that is not supported, such as migrating JBoss EAP 7.0 to JBoss EAP 7.3 (only JBoss EAP 7.2). If in doubt, you can set the logger.level (found in logging.properties).

    Finally, JBoss EAP 7.4 lets you migrate straight from JBoss EAP 7.1 and JBoss EAP 7.2. This avoids chain scenarios needing subsequent migrations (e.g., JBoss EAP 7.1 to JBoss EAP 7.2 to JBoss EAP 7.3 to JBoss EAP 7.4), which we encountered before this tech preview came along.

    FAQ

    Q. Is it possible to keep two JBoss EAP installations at the same time, the new and the old?

    A. Yes, as long as the installation was done using ZIP. RPM installations do not allow multiple JBoss EAP installations. For running two EAP servers simultaneously verify if they won't have port conflicts.

    Q. Can I run the migration from JBoss EAP 7.2 to JBoss EAP 7.4?

    A. Yes, this is available as a feature in JBoss EAP 7.4.2+.

    Q. Does the migration tool help migrate deployments?

    A. No, the JBoss Server Migration Tool does not migrate the deployment code; it migrates the deployment in that it copies the deployment from source to target. To migrate the deployment code itself, you must use the migration toolkit for runtimes (or the migration toolkit for applications, for OpenShift Container Platform migrations). 

    Additional resources

    To learn more, refer to the JBoss Server Migration Tool migration guide in PDF or HTML formats. Red Hat Support team created the article Using JBoss Server Migration Tool to upgrade from JBoss EAP 7.x to 7.current with several issues and an simple example as I above explain. 

    Regarding JBoss EAP 7.3 breaking JBoss EAP 7.4, refer to the solution described in Using EAP 7.3 configuration in EAP 7.4 breaks the backward compatibility.

    For any other specific inquiries, please open a case with Red Hat support. Our global team of experts can help you with any issues.

    Related Posts

    • JBoss EAP 7.3 brings new packaging capabilities

    • Installing Red Hat's migration toolkit for applications on your laptop

    • An Introduction to Red Hat Application Migration Toolkit

    • Modernize at scale with the new migration toolkit for applications

    Recent Posts

    • Create and enrich ServiceNow ITSM tickets with Ansible Automation Platform

    • Expand Model-as-a-Service for secure enterprise AI

    • OpenShift LACP bonding performance expectations

    • Build container images in CI/CD with Tekton and Buildpacks

    • How to deploy OpenShift AI & Service Mesh 3 on one cluster

    What’s up next?

    Learn how to deploy an application on a cluster using Red Hat OpenShift Service on AWS. This learning path uses a pre-built application to allow you to become more familiar with OpenShift and Kubernetes features.

    Start learning
    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Products

    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform

    Build

    • Developer Sandbox
    • Developer Tools
    • Interactive Tutorials
    • API Catalog

    Quicklinks

    • Learning Resources
    • E-books
    • Cheat Sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site Status Dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit
    © 2025 Red Hat

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Report a website issue