{"id":14269,"date":"2024-09-12T12:09:26","date_gmt":"2024-09-12T17:09:26","guid":{"rendered":"https:\/\/www.mrc-productivity.com\/docs\/?post_type=ht_kb&#038;p=14269"},"modified":"2026-04-07T14:39:06","modified_gmt":"2026-04-07T19:39:06","slug":"upgrading-to-tomcat-10-and-jdk-17","status":"publish","type":"ht_kb","link":"https:\/\/www.mrc-productivity.com\/docs\/knowledge-base\/upgrading-to-tomcat-10-and-jdk-17","title":{"rendered":"Upgrading to Tomcat 10 and JDK 17"},"content":{"rendered":"\n<p>This document is designed to give system administrators step by step instructions on how to update to Tomcat 10 and JDK 17.<\/p>\n\n\n\n<p>Before we begin, please note these instructions are designed for&nbsp;<em>standard Windows <\/em>installations. If you are utilizing any of the following, please consider engaging m-Power in a services agreements for us to do this conversion for you as we are familiar with these types of customized solutions:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Load Balancing<\/li>\n\n\n\n<li>Clustering<\/li>\n\n\n\n<li>SSL<\/li>\n\n\n\n<li>mod_jk to communicate between Tomcat\/Apache<\/li>\n\n\n\n<li>Custom Contexts<\/li>\n\n\n\n<li>Reverse Proxies<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Install JDK 17<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/corretto.aws\/downloads\/latest\/amazon-corretto-17-x64-windows-jdk.msi\"><strong>Download JDK 17 from Amazon Corretto.<\/strong><\/a><\/li>\n\n\n\n<li>Run the Corretto installer.<\/li>\n\n\n\n<li>Restart the server.<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 class=\"wp-block-heading\">Step 2: Active Directory Authentication File (optional)<\/h2>\n\n\n\n<p>If using Active Directory authentication, download the Integrated Security authentication file&nbsp;<strong><a href=\"https:\/\/mrc-productivity.com\/downloads\/sqljdbc_auth.dll\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>&nbsp;<\/strong>and install in the following locations:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>C:\\Program Files\\Amazon Coretto\\jdk17.X.XX_X\\bin\\<\/li>\n\n\n\n<li>C:\\Program Files\\Amazon Coretto\\jdk17.X.XX_X\\lib\\ <\/li>\n<\/ul>\n\n\n\n<p>(Use the directory where the java folder is set up on your server)<\/p>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Remove Tomcat 9 Services<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Stop existing Tomcat services.<\/li>\n\n\n\n<li>Open CMD mode as Administrator.<\/li>\n\n\n\n<li>Navigate to C:\\Program Files\\mrc\\development\\m-power\\tomcat\\bin.<\/li>\n\n\n\n<li>Type <code>service remove TC9DEV<\/code><\/li>\n\n\n\n<li>Navigate to C:\\Program Files\\mrc\\development\\m-power<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-ht-blocks-messages wp-block-hb-message wp-block-hb-message--withicon is-style-info\">If upgrading from Tomcat 7, reference <code>TC7DEV <\/code>instead of <code>TC9DEV<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-ht-blocks-messages wp-block-hb-message wp-block-hb-message--withicon is-style-info\">When removing the <strong>production <\/strong>Tomcat service, the service name is <code>TC9PROD<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Install Tomcat 10<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Download the Windows version of Tomcat 10 from mrc <strong><a href=\"\/products\/Tomcat10\/tomcat.zip\">here<\/a><\/strong>.<\/li>\n\n\n\n<li>Rename the existing \\mrc\\development\\m-power\\tomcat folder to tomcat9.<\/li>\n\n\n\n<li>Unzip the downloaded files into C:\\Program Files\\mrc\\development\\m-power. When completed you should have a C:\\Program Files\\mrc\\development\\m-power\\tomcat folder.<\/li>\n\n\n\n<li>If you connect to MSSQL or MySQL, move over the necessary driver jar files from \\tomcat9\\lib to \\tomcat\\lib.<br> <img decoding=\"async\" title=\"drivers\" src=\"\/docs\/images\/drivers.png\" alt=\"drivers\"><br><p class=\"wp-block-ht-blocks-messages wp-block-hb-message wp-block-hb-message--withicon is-style-danger\">MSSQL users need to follow additional required steps for <a href=\"https:\/\/www.mrc-productivity.com\/techblog\/?ht_kb=mssql-installation-guide#installing-the-jdbc-driver\" target=\"_blank\" rel=\"noreferrer noopener\">Installing a New JDBC Driver<\/a> and <a href=\"https:\/\/www.mrc-productivity.com\/techblog\/?ht_kb=mssql-installation-guide#configure-m-power-sql-server-properties\">Configure m-Power SQL Server Properties<\/a>, especially when coming from JDK 8<\/p><br><\/li>\n\n\n\n<li>Examine the server.xml in \\tomcat9\\conf. Specifically, note the shutdown port, connector port, and contexts. Ensure these changes are made within the server.xml in the new \\tomcat\\conf folder.<br><br><img decoding=\"async\" title=\"shutdown\" src=\"\/docs\/images\/shutdown.png\" alt=\"shutdown\"><br><br><img decoding=\"async\" title=\"main\" src=\"\/docs\/images\/main.png\" alt=\"main\"><br><br><img decoding=\"async\" title=\"mapped\" src=\"\/docs\/images\/mapped.png\" alt=\"mapped\"><\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">Production Specific server.xml Settings<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Towards the very bottom of the file, remove the entire &#8220;\/webapp\/mrc&#8221; context from the production server.xml. This context is only used for development environments and will cause problems in a production environment.<\/li>\n\n\n\n<li>Confirm the &#8220;\/mrcjava&#8221; context is pointing to the correct production folder in the docBase parameter.<\/li>\n\n\n\n<li>Set the reloadable property to &#8220;<strong>false<\/strong>&#8220;.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"\/docs\/images\/productionContext.png\" alt=\"\"\/><\/figure>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">Tomcat 10 SSL Configuration (optional)<\/h3>\n\n\n\n<p>Tomcat 10 has a new setup for configuring SSL in the server.xml file. Find the main connector port and move the highlighted parameters into the nested SSLHostConfig tag as seen in the below screenshot.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"\/docs\/images\/Tomcat10SSL.png\" alt=\"\"\/><\/figure>\n<\/div><\/div>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Install Tomcat 10 Services<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open CMD mode as Administrator.<\/li>\n\n\n\n<li>Navigate to C:\\Program Files\\mrc\\development\\m-power\\tomcat\\bin<\/li>\n\n\n\n<li>Type&nbsp;<code>service install TC10DEV<\/code> and press Enter.<\/li>\n\n\n\n<li>When the service is installed, type&nbsp;<code>tomcat10w \/\/ES\/\/TC10DEV<\/code> and press Enter.<\/li>\n\n\n\n<li>In the General tab, ensure that the startup type is Automatic.<\/li>\n\n\n\n<li>In the Java tab set the JVM to the appropriate jvm.dll (found in a path similar to C:\\Program Files\\Amazon Corretto\\jdk17.0.X_X\\bin\\server\\jvm.dll<\/li>\n\n\n\n<li>Back in the General tab, press Start.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-ht-blocks-messages wp-block-hb-message wp-block-hb-message--withicon is-style-info\">When installing the <strong>production <\/strong>Tomcat service, the service name should be <code>TC10PROD<\/code>.<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 class=\"wp-block-heading\">Step 6: Update m-Power<\/h2>\n\n\n\n<p>Download and install the October 2024 version of m-Power (or later) from <strong><a href=\"https:\/\/www.mrc-productivity.com\/mrcjava\/servlet\/CUSTPORTAL.I00350s\" data-type=\"link\" data-id=\"https:\/\/www.mrc-productivity.com\/mrcjava\/servlet\/CUSTPORTAL.I00350s\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a><\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-ht-blocks-messages wp-block-hb-message wp-block-hb-message--withicon is-style-alert\">If updating your development environment, sign into the m-Power Development interface and click &#8220;Apply Update&#8221; when prompted.<\/p>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Step 7: Convert Apps to use Tomcat 10<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open CMD mode as Administrator.<\/li>\n\n\n\n<li>Navigate to C:\\Program Files\\mrc\\development\\m-power\\tomcat\\lib.<\/li>\n\n\n\n<li>Run the following command <code>java -jar jakartaee-migration-1.0.8-shaded.jar \"C:\\Program Files\\mrc\\development\\m-power\\mrcjava\\WEB-INF\\classes\" \"C:\\Program Files\\mrc\\development\\m-power\\mrcjava\\WEB-INF\\classes-out\"<\/code><\/li>\n\n\n\n<li>Rename the \\m-power\\mrcjava\\WEB-INF\\classes folder to classes_tc9.<\/li>\n\n\n\n<li>Rename the \\m-power\\mrcjava\\WEB-INF\\classes-out folder to classes.<\/li>\n\n\n\n<li>Restart development Tomcat.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-ht-blocks-messages wp-block-hb-message wp-block-hb-message--withicon is-style-danger\">Any existing Web Service maintainer templates or applications using RESTful web services, you will need to manually recompile these from the development interface.<br><br><strong>Note <\/strong>&#8211; if you have many RESTful applications where manually recompilation is not possible, please contact support@mrc-productivity.com and we can provide tailored instructions to accommodate this scenario.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 8: Production\/Other Tomcat Environments<\/h2>\n\n\n\n<p>Repeat above <strong>steps 1 &#8211; 7<\/strong> for your production environments (or any other Tomcat environments you have).<\/p>\n\n\n\n<p class=\"wp-block-ht-blocks-messages wp-block-hb-message wp-block-hb-message--withicon is-style-alert\">Be sure to substitute any path reference of &#8216;development&#8217; with the appropriate environment. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 9: Custom JAR Files (Optional)<\/h2>\n\n\n\n<p>If you have any custom projects developed by mrc that include custom JAR files, please contact us at <a>support@mrc-productivity.com<\/a> to obtain updated versions compatible with Tomcat 10 and JDK 17.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Non-Windows Installations<\/h2>\n\n\n\n<p>For Linux\/iSeries m-Power installations, the steps are generally the same as above:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Download and run the appropriate <strong><a href=\"https:\/\/docs.aws.amazon.com\/corretto\/latest\/corretto-17-ug\/downloads-list.html\" target=\"_blank\" rel=\"noreferrer noopener\">JDK 17 installer<\/a> <\/strong>for your server.<\/li>\n\n\n\n<li>Restart the server after installing.<\/li>\n\n\n\n<li>Follow the above steps to <a href=\"#install-tomcat-10\" data-type=\"internal\" data-id=\"#install-tomcat-10\"><strong>Install Tomcat 10<\/strong><\/a>.<\/li>\n\n\n\n<li>Download and install the latest version of m-Power from <strong><a href=\"https:\/\/www.mrc-productivity.com\/mrcjava\/servlet\/CUSTPORTAL.I00350s\" data-type=\"link\" data-id=\"https:\/\/www.mrc-productivity.com\/mrcjava\/servlet\/CUSTPORTAL.I00350s\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a><\/strong>.<\/li>\n\n\n\n<li>Follow the above steps to <strong><a href=\"#convert-apps-to-use-tomcat-10\" data-type=\"internal\" data-id=\"#convert-apps-to-use-tomcat-10\">Convert Apps to use Tomcat 10<\/a><\/strong>.\n<ul class=\"wp-block-list\">\n<li>Note: Navigate to your specific m-power folder as you will not have a C:\/Program Files directory<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This document is designed to give system administrators step by step instructions on how to update to Tomcat 10 and JDK 17. Before we begin, please note these instructions are designed for&nbsp;standard Windows installations. If you are utilizing any of the following, please consider engaging m-Power in a services agreements&#8230;<\/p>\n","protected":false},"author":1,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"ht-kb-category":[261],"ht-kb-tag":[310,309],"class_list":["post-14269","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-administration","ht_kb_tag-jdk","ht_kb_tag-tomcat"],"_links":{"self":[{"href":"https:\/\/www.mrc-productivity.com\/docs\/wp-json\/wp\/v2\/ht-kb\/14269","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mrc-productivity.com\/docs\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/www.mrc-productivity.com\/docs\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/www.mrc-productivity.com\/docs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mrc-productivity.com\/docs\/wp-json\/wp\/v2\/comments?post=14269"}],"version-history":[{"count":37,"href":"https:\/\/www.mrc-productivity.com\/docs\/wp-json\/wp\/v2\/ht-kb\/14269\/revisions"}],"predecessor-version":[{"id":15086,"href":"https:\/\/www.mrc-productivity.com\/docs\/wp-json\/wp\/v2\/ht-kb\/14269\/revisions\/15086"}],"wp:attachment":[{"href":"https:\/\/www.mrc-productivity.com\/docs\/wp-json\/wp\/v2\/media?parent=14269"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.mrc-productivity.com\/docs\/wp-json\/wp\/v2\/ht-kb-category?post=14269"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.mrc-productivity.com\/docs\/wp-json\/wp\/v2\/ht-kb-tag?post=14269"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}