Skip to main content
Redhat Developers  Logo
  • AI

    Get started with AI

    • Red Hat AI
      Accelerate the development and deployment of enterprise AI solutions.
    • AI learning hub
      Explore learning materials and tools, organized by task.
    • AI interactive demos
      Click through scenarios with Red Hat AI, including training LLMs and more.
    • AI/ML learning paths
      Expand your OpenShift AI knowledge using these learning resources.
    • AI quickstarts
      Focused AI use cases designed for fast deployment on Red Hat AI platforms.
    • No-cost AI training
      Foundational Red Hat AI training.

    Featured resources

    • OpenShift AI learning
    • Open source AI for developers
    • AI product application development
    • Open source-powered AI/ML for hybrid cloud
    • AI and Node.js cheat sheet

    Red Hat AI Factory with NVIDIA

    • Red Hat AI Factory with NVIDIA is a co-engineered, enterprise-grade AI solution for building, deploying, and managing AI at scale across hybrid cloud environments.
    • Explore the solution
  • Learn

    Self-guided

    • Documentation
      Find answers, get step-by-step guidance, and learn how to use Red Hat products.
    • Learning paths
      Explore curated walkthroughs for common development tasks.
    • Guided learning
      Receive custom learning paths powered by our AI assistant.
    • See all learning

    Hands-on

    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.
    • Interactive labs
      Learn by doing in these hands-on, browser-based experiences.
    • Interactive demos
      Click through product features in these guided tours.

    Browse by topic

    • AI/ML
    • Automation
    • Java
    • Kubernetes
    • Linux
    • See all topics

    Training & certifications

    • Courses and exams
    • Certifications
    • Skills assessments
    • Red Hat Academy
    • Learning subscription
    • Explore training
  • Build

    Get started

    • Red Hat build of Podman Desktop
      A downloadable, local development hub to experiment with our products and builds.
    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.

    Download products

    • Access product downloads to start building and testing right away.
    • Red Hat Enterprise Linux
    • Red Hat AI
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Featured

    • Red Hat build of OpenJDK
    • Red Hat JBoss Enterprise Application Platform
    • Red Hat OpenShift Dev Spaces
    • Red Hat Developer Toolset

    References

    • E-books
    • Documentation
    • Cheat sheets
    • Architecture center
  • Community

    Get involved

    • Events
    • Live AI events
    • Red Hat Summit
    • Red Hat Accelerators
    • Community discussions

    Follow along

    • Articles & blogs
    • Developer newsletter
    • Videos
    • Github

    Get help

    • Customer service
    • Customer support
    • Regional contacts
    • Find a partner

    Join the Red Hat Developer program

    • Download Red Hat products and project builds, access support documentation, learning content, and more.
    • Explore the benefits

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

    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

    • Trusted software factory: Building trust in the agentic AI era

    • Build a zero trust AI pipeline with OpenShift and RHEL CVMs

    • Red Hat Hardened Images: Top 5 benefits for software developers

    • How EvalHub manages two-layer Kubernetes control planes

    • Tekton joins the CNCF as an incubating project

    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

    Platforms

    • Red Hat AI
    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    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
    © 2026 Red Hat

    Red Hat legal and privacy links

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

    Chat Support

    Please log in with your Red Hat account to access chat support.