{"id":42491,"date":"2026-02-18T11:41:41","date_gmt":"2026-02-18T10:41:41","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=42491"},"modified":"2026-02-18T11:41:43","modified_gmt":"2026-02-18T10:41:43","slug":"migrating-from-wildfly-26-to-wildfly-38","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/","title":{"rendered":"Migrating from WildFly 26 to WildFly 38"},"content":{"rendered":"\n<p>I have been asked to migrate a customer environment from WildFly 26 to WildFly 38. That\u2019s a meaningful upgrade, not just a version bump, because WildFly 38 represents the latest stable baseline with modern Jakarta EE support, updated security, and long-term compatibility with modern Java runtimes like OpenJDK 17&#8230;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2026\/01\/d8277d18-12d3-4a45-97a5-6e1346f268dc-1024x683.png\" alt=\"\" class=\"wp-image-42492\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2026\/01\/d8277d18-12d3-4a45-97a5-6e1346f268dc-1024x683.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2026\/01\/d8277d18-12d3-4a45-97a5-6e1346f268dc-300x200.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2026\/01\/d8277d18-12d3-4a45-97a5-6e1346f268dc-768x512.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2026\/01\/d8277d18-12d3-4a45-97a5-6e1346f268dc.png 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<!--more-->\n\n\n\n<p>Before we dive into commands and configurations, let\u2019s anchor this in version history and explain an important staging step that many teams overlook.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-wildfly-version-history\">WildFly version history<\/h2>\n\n\n\n<p>WildFly releases follow a rapid cadence, but some versions carry particular importance for migration:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Version<\/td><td>Release date<\/td><td>Notes<\/td><\/tr><tr><td><a href=\"https:\/\/www.wildfly.org\/news\/2021\/12\/16\/WildFly-26-is-released\/\" target=\"_blank\" rel=\"noreferrer noopener\">WildFly 26<\/a><\/td><td>December 2021<\/td><td>Last in the older Java EE family with early Jakarta EE support. Many legacy configurations still present.<\/td><\/tr><tr><td><a href=\"https:\/\/www.wildfly.org\/news\/2025\/04\/10\/WildFly-36-is-released\/\">WildFly 36<\/a><\/td><td>April 2025<\/td><td>Transitional release: consolidates Jakarta EE 9+ changes and stabilizes newer subsystems.<\/td><\/tr><tr><td><a href=\"https:\/\/www.wildfly.org\/news\/2025\/11\/17\/WildFly-38-0-1-is-released\/\" target=\"_blank\" rel=\"noreferrer noopener\">WildFly 38<\/a><\/td><td>October 2025<\/td><td>Latest stable release with Jakarta EE 10 alignment, updated security policies, and official baseline for Java 17.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-why-not-jump-directly-from-26-to-38\">Why Not Jump Directly from 26 to 38?<\/h2>\n\n\n\n<p>In theory you could try, but in practice, this is discouraged for several reasons:<\/p>\n\n\n\n<p>     1. <strong>Evolving Jakarta EE Support<\/strong><\/p>\n\n\n\n<p>WildFly 26 still contains remnants of older namespace patterns from the earlier Jakarta EE transition. WildFly 38 assumes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Full Jakarta EE 10 compliance<\/li>\n\n\n\n<li>Removal of deprecated subsystem elements<\/li>\n<\/ul>\n\n\n\n<p>Staging through WildFly 36 means you pass through a version that:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Consolidated many breaking changes<\/li>\n\n\n\n<li>Served as a stepping stone for configuration syntax modernization<\/li>\n\n\n\n<li>Was widely adopted and battle-tested by community users before WildFly 38<\/li>\n<\/ul>\n\n\n\n<p>This reduces the \u201cshock\u201d of incompatible subsystems in one big jump.<\/p>\n\n\n\n<p>     2. <strong>Migration Tool Patching<\/strong><\/p>\n\n\n\n<p>The WildFly Migration Tool is better optimized when configurations change incrementally:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>From 26 to 36, the migration tool handles early syntax conversions<\/li>\n\n\n\n<li>From 36 to 38, it can focus on more recent modular and namespace adjustments<\/li>\n<\/ul>\n\n\n\n<p>If you try to leap directly from 26 to 38, the migration tool may:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Miss subtle differences<\/li>\n\n\n\n<li>Produce overly noisy reports<\/li>\n\n\n\n<li>Increase your manual remediation effort<\/li>\n<\/ul>\n\n\n\n<p>Staging through 36 results in cleaner migration scripts, fewer manual manual fixes, and a more predictable process.<\/p>\n\n\n\n<p>    3. <strong>Security and Subsystem Consistency<\/strong><\/p>\n\n\n\n<p>Between 26 and 38, several subsystems saw significant reconfiguration:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Elytron security policy changes<\/li>\n\n\n\n<li>Credential store formats<\/li>\n\n\n\n<li>Datasource definitions (Oracle and others became stricter)<\/li>\n\n\n\n<li>Logging and management interfaces<\/li>\n<\/ul>\n\n\n\n<p>WildFly 36 introduced many of these changes incrementally so that:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Administrators could adapt<\/li>\n\n\n\n<li>Tooling could reflect real-world environments before further evolution in WildFly 38<\/li>\n<\/ul>\n\n\n\n<p>This made 36 a natural \u201clanding zone\u201d between the older 26 semantics and the newer 38 mechanics.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-migration-flow\">Migration Flow<\/h2>\n\n\n\n<p>The migration from WildFly 26 to WildFly 38 is intentionally performed in two controlled phases. This staged approach reduces risk, isolates problems earlier, and provides clear validation points before reaching the final production target.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-step-1-baseline-wildfly-26-current-state\">Step 1 &#8211; Baseline: WildFly 26 (Current State)<\/h3>\n\n\n\n<p>The starting point is the existing WildFly 26 environment, typically running on Java 11 and hosting a stable, production-tested application.<\/p>\n\n\n\n<p>At this stage:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The platform is known and stable<\/li>\n\n\n\n<li>Configuration reflects historical decisions and legacy syntax<\/li>\n\n\n\n<li>Security, datasources, and deployments are tightly coupled to this version<\/li>\n<\/ul>\n\n\n\n<p>No changes are made here except:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Full backups<\/li>\n\n\n\n<li>Configuration review<\/li>\n\n\n\n<li>Inventory of customizations<\/li>\n<\/ul>\n\n\n\n<p>WildFly 26 remains untouched and fully rollback-capable throughout the migration.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-step-2-first-migration-wildfly-26-to-wildfly-36\">Step 2 &#8211; First Migration: WildFly 26 to WildFly 36<\/h3>\n\n\n\n<p>The first technical migration is performed using the <strong>WildFly migration tool<\/strong>, targeting WildFly 36.<\/p>\n\n\n\n<p>This step focuses on:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Converting legacy configuration syntax<\/li>\n\n\n\n<li>Removing deprecated or removed subsystems<\/li>\n\n\n\n<li>Preparing the configuration for newer Jakarta EE expectations<\/li>\n<\/ul>\n\n\n\n<p>WildFly 36 acts as a transition platform:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>It supports Java 17<\/li>\n\n\n\n<li>It consolidates many breaking changes introduced after WildFly 26<\/li>\n\n\n\n<li>It allows configuration issues to be addressed incrementally rather than all at once<\/li>\n<\/ul>\n\n\n\n<p>At this stage, the goal is not production readiness, but configuration correctness.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-step-3-staging-and-validation-on-wildfly-36\">Step 3 &#8211; Staging and Validation on WildFly 36<\/h3>\n\n\n\n<p>Once the configuration is migrated, WildFly 36 is used as a staging environment for in-depth validation.<\/p>\n\n\n\n<p>Key activities include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Running WildFly on Java 17<\/li>\n\n\n\n<li>Rebuilding or adjusting Elytron security components<\/li>\n\n\n\n<li>Recreating credential stores<\/li>\n\n\n\n<li>Validating datasource connectivity<\/li>\n\n\n\n<li>Starting the application and ensuring it runs<\/li>\n\n\n\n<li>Performing smoke tests and basic functional checks<\/li>\n\n\n\n<li>Allowing customer or application teams to execute targeted tests<\/li>\n<\/ul>\n\n\n\n<p>When all tests pass:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Configuration is frozen<\/li>\n\n\n\n<li>Known issues are documented<\/li>\n\n\n\n<li>The environment is considered stable enough to move forward<\/li>\n<\/ul>\n\n\n\n<p>This step significantly reduces uncertainty before the final upgrade.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-step-4-second-migration-wildfly-36-to-wildfly-38\">Step 4 \u2013 Second Migration: WildFly 36 to WildFly 38<\/h3>\n\n\n\n<p>With a validated configuration on WildFly 36, the second migration step is executed toward WildFly 38.<\/p>\n\n\n\n<p>This phase:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Uses the migration tool again<\/li>\n\n\n\n<li>Applies final syntax and subsystem adjustments<\/li>\n\n\n\n<li>Introduces stricter validation and enforcement present in WildFly 38<\/li>\n<\/ul>\n\n\n\n<p>Because most major changes were already handled in the previous step, this migration is usually:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Shorter<\/li>\n\n\n\n<li>Cleaner<\/li>\n\n\n\n<li>Easier to troubleshoot<\/li>\n<\/ul>\n\n\n\n<p>WildFly 38 now represents the target platform, not just a test environment.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-step-5-final-validation-on-wildfly-38\">Step 5 &#8211; Final Validation on WildFly 38<\/h3>\n\n\n\n<p>Before production rollout, WildFly 38 undergoes final validation:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Server startup and stability checks<\/li>\n\n\n\n<li>Security and datasource verification<\/li>\n\n\n\n<li>Application deployment validation<\/li>\n\n\n\n<li>Final smoke and regression tests<\/li>\n<\/ul>\n\n\n\n<p>At this point, the platform should behave identically (or better) than WildFly 26, with the added benefits of:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A modern Java runtime<\/li>\n\n\n\n<li>Up-to-date Jakarta EE support<\/li>\n\n\n\n<li>Improved security and maintainability<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-step-6-production-rollout-and-retirement-of-wildfly-26\">Step 6 &#8211; Production Rollout and Retirement of WildFly 26<\/h3>\n\n\n\n<p>Once validated:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>WildFly 38 is promoted to production<\/li>\n\n\n\n<li>Traffic is switched according to the customer\u2019s deployment strategy<\/li>\n\n\n\n<li>WildFly 26 is retired in a controlled manner<\/li>\n<\/ul>\n\n\n\n<p>Rollback remains trivial until decommissioning is complete, since:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>WildFly 26 was never modified<\/li>\n\n\n\n<li>All migrations were performed side-by-side<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-summary\">Summary<\/h2>\n\n\n\n<p>This staged migration approach ensures that:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Configuration changes are isolated and understandable<\/li>\n\n\n\n<li>Security and infrastructure issues are discovered early<\/li>\n\n\n\n<li>Application teams have time to adapt and validate<\/li>\n\n\n\n<li>Production risk is minimized<\/li>\n<\/ul>\n\n\n\n<p>By treating WildFly 36 as a stabilization checkpoint, the transition to WildFly 38 becomes predictable, controlled, and repeatable.<\/p>\n\n\n\n<p>Don\u2019t hesitate to reach out to discuss your WildFly or JBoss EAP migration project, we\u2019ll be happy to help you move forward safely, efficiently, and with full transparency.<\/p>\n\n\n\n<p>Related interesting blog: <a href=\"https:\/\/www.dbi-services.com\/blog\/jboss-eap-vs-wildfly-whats-the-difference\/\">JBoss EAP vs Wildfly<\/a> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have been asked to migrate a customer environment from WildFly 26 to WildFly 38. That\u2019s a meaningful upgrade, not just a version bump, because WildFly 38 represents the latest stable baseline with modern Jakarta EE support, updated security, and long-term compatibility with modern Java runtimes like OpenJDK 17&#8230;<\/p>\n","protected":false},"author":46,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3811],"tags":[2562,1100],"type_dbi":[],"class_list":["post-42491","post","type-post","status-publish","format-standard","hentry","category-wildfly","tag-migration-2","tag-wildfly"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Migrating from WildFly 26 to WildFly 38 - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Migrating from WildFly 26 to WildFly 38\" \/>\n<meta property=\"og:description\" content=\"I have been asked to migrate a customer environment from WildFly 26 to WildFly 38. That\u2019s a meaningful upgrade, not just a version bump, because WildFly 38 represents the latest stable baseline with modern Jakarta EE support, updated security, and long-term compatibility with modern Java runtimes like OpenJDK 17&#8230;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-18T10:41:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-18T10:41:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2026\/01\/d8277d18-12d3-4a45-97a5-6e1346f268dc.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"David Diab\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"David Diab\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/\"},\"author\":{\"name\":\"David Diab\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/deb907c3360cacdc6c7df54b4bac3c86\"},\"headline\":\"Migrating from WildFly 26 to WildFly 38\",\"datePublished\":\"2026-02-18T10:41:41+00:00\",\"dateModified\":\"2026-02-18T10:41:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/\"},\"wordCount\":924,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2026\/01\/d8277d18-12d3-4a45-97a5-6e1346f268dc-1024x683.png\",\"keywords\":[\"migration\",\"WildFly\"],\"articleSection\":[\"WildFly\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/\",\"name\":\"Migrating from WildFly 26 to WildFly 38 - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2026\/01\/d8277d18-12d3-4a45-97a5-6e1346f268dc-1024x683.png\",\"datePublished\":\"2026-02-18T10:41:41+00:00\",\"dateModified\":\"2026-02-18T10:41:43+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/deb907c3360cacdc6c7df54b4bac3c86\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2026\/01\/d8277d18-12d3-4a45-97a5-6e1346f268dc.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2026\/01\/d8277d18-12d3-4a45-97a5-6e1346f268dc.png\",\"width\":1536,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Migrating from WildFly 26 to WildFly 38\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/deb907c3360cacdc6c7df54b4bac3c86\",\"name\":\"David Diab\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/212b1b2e4650bad3116f644ab4fb4663786d94195d7685d0704c8426da088e60?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/212b1b2e4650bad3116f644ab4fb4663786d94195d7685d0704c8426da088e60?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/212b1b2e4650bad3116f644ab4fb4663786d94195d7685d0704c8426da088e60?s=96&d=mm&r=g\",\"caption\":\"David Diab\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/david-diab\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Migrating from WildFly 26 to WildFly 38 - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/","og_locale":"en_US","og_type":"article","og_title":"Migrating from WildFly 26 to WildFly 38","og_description":"I have been asked to migrate a customer environment from WildFly 26 to WildFly 38. That\u2019s a meaningful upgrade, not just a version bump, because WildFly 38 represents the latest stable baseline with modern Jakarta EE support, updated security, and long-term compatibility with modern Java runtimes like OpenJDK 17&#8230;","og_url":"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/","og_site_name":"dbi Blog","article_published_time":"2026-02-18T10:41:41+00:00","article_modified_time":"2026-02-18T10:41:43+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2026\/01\/d8277d18-12d3-4a45-97a5-6e1346f268dc.png","type":"image\/png"}],"author":"David Diab","twitter_card":"summary_large_image","twitter_misc":{"Written by":"David Diab","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/"},"author":{"name":"David Diab","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/deb907c3360cacdc6c7df54b4bac3c86"},"headline":"Migrating from WildFly 26 to WildFly 38","datePublished":"2026-02-18T10:41:41+00:00","dateModified":"2026-02-18T10:41:43+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/"},"wordCount":924,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2026\/01\/d8277d18-12d3-4a45-97a5-6e1346f268dc-1024x683.png","keywords":["migration","WildFly"],"articleSection":["WildFly"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/","url":"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/","name":"Migrating from WildFly 26 to WildFly 38 - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2026\/01\/d8277d18-12d3-4a45-97a5-6e1346f268dc-1024x683.png","datePublished":"2026-02-18T10:41:41+00:00","dateModified":"2026-02-18T10:41:43+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/deb907c3360cacdc6c7df54b4bac3c86"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2026\/01\/d8277d18-12d3-4a45-97a5-6e1346f268dc.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2026\/01\/d8277d18-12d3-4a45-97a5-6e1346f268dc.png","width":1536,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/migrating-from-wildfly-26-to-wildfly-38\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Migrating from WildFly 26 to WildFly 38"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/deb907c3360cacdc6c7df54b4bac3c86","name":"David Diab","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/212b1b2e4650bad3116f644ab4fb4663786d94195d7685d0704c8426da088e60?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/212b1b2e4650bad3116f644ab4fb4663786d94195d7685d0704c8426da088e60?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/212b1b2e4650bad3116f644ab4fb4663786d94195d7685d0704c8426da088e60?s=96&d=mm&r=g","caption":"David Diab"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/david-diab\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/42491","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/46"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=42491"}],"version-history":[{"count":7,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/42491\/revisions"}],"predecessor-version":[{"id":42988,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/42491\/revisions\/42988"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=42491"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=42491"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=42491"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=42491"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}