<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>devkuma – Tomcat</title>
    <link>https://www.devkuma.com/en/tags/tomcat/</link>
    <image>
      <url>https://www.devkuma.com/en/tags/tomcat/logo/180x180.jpg</url>
      <title>Tomcat</title>
      <link>https://www.devkuma.com/en/tags/tomcat/</link>
    </image>
    <description>Recent content in Tomcat on devkuma</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>kc@example.com (kc kim)</managingEditor>
    <webMaster>kc@example.com (kc kim)</webMaster>
    <copyright>The devkuma</copyright>
    
	  <atom:link href="https://www.devkuma.com/en/tags/tomcat/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Tomcat Overview</title>
      <link>https://www.devkuma.com/en/docs/tomcat/overview/</link>
      <pubDate>Tue, 08 Nov 2022 00:46:00 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/en/docs/tomcat/overview/</guid>
      <description>
        
        
        &lt;h2 id=&#34;tomcat-overview&#34;&gt;Tomcat Overview&lt;/h2&gt;
&lt;p&gt;Tomcat is an open-source web container widely used around the world.&lt;/p&gt;
&lt;p&gt;Tomcat&amp;rsquo;s official name is &amp;ldquo;Apache Tomcat&amp;rdquo;, but it is so widely recognized simply as &amp;ldquo;Tomcat&amp;rdquo; that it is no exaggeration to call it the de facto standard for web containers today. Tomcat is written in Java, can be used on many platforms where Java runs, and is widely used in enterprise systems because it is stable, lightweight, and performs well.&lt;/p&gt;
&lt;p&gt;Tomcat began as Sun Microsystems&amp;rsquo; reference implementation of Java Servlet and JSP (JavaServer Pages). It was donated to the Apache Software Foundation (ASF) in 1999, and version 3.0 was released as an early version.&lt;/p&gt;
&lt;p&gt;The name Tomcat, meaning a male cat, came from the image of being able to act and fight independently, and was named by developer James Duncan Davidson.&lt;/p&gt;
&lt;p&gt;Tomcat is still actively versioned and continues to evolve as one of the top-level projects owned by the Apache Software Foundation.&lt;/p&gt;
&lt;p&gt;The latest 10.0.x versions include features such as Servlet 5.0, JSP 3.0, EL 4.0, WebSocket 2.0, and HTTP/2. The next 10.1.x version under development implements Servlet 6.0, JSP 3.1, EL 5.0, WebSocket (version not yet decided), and Authentication (JASPIC) (version not yet decided).&lt;/p&gt;
&lt;h2 id=&#34;tomcat-license&#34;&gt;Tomcat License&lt;/h2&gt;
&lt;p&gt;Tomcat is distributed under the Apache License version 2 and can be freely used, modified, and redistributed by anyone, whether for commercial or non-commercial purposes.
Tomcat uses release modules that support the Servlet/JSP specifications.&lt;/p&gt;
&lt;h2 id=&#34;software-similar-to-tomcat&#34;&gt;Software Similar to Tomcat&lt;/h2&gt;
&lt;p&gt;Among commercial software products, WebLogic Express and WebSphere Application Server Express provide functionality similar to Tomcat.&lt;/p&gt;
&lt;h2 id=&#34;main-features-of-tomcat&#34;&gt;Main Features of Tomcat&lt;/h2&gt;
&lt;p&gt;In addition to high performance and high stability, Tomcat has the following characteristics.&lt;br&gt;
Because its features, performance, and track record are nearly comparable to commercial products, the points that it is &amp;ldquo;more open-standard&amp;rdquo; and &amp;ldquo;can reduce costs more&amp;rdquo; seem to be decisive factors in choosing Tomcat.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;JSP/Servlet standard specifications
&lt;ul&gt;
&lt;li&gt;Tomcat was developed and implemented as the official reference implementation for Java Servlet and JSP.&lt;/li&gt;
&lt;li&gt;Tomcat can run by itself as a web server (httpd), but it is usually used together with Apache or IIS.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Lightweight operation and stability
&lt;ul&gt;
&lt;li&gt;Because Tomcat is stable and lightweight, it does not require high-spec hardware like commercial products and is easy to install.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Multi-platform support
&lt;ul&gt;
&lt;li&gt;Tomcat supports various OS platforms, including Red Hat Enterprise Linux, SUSE Linux, Sun Solaris, HP-UX, Microsoft Windows, and AIX.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Used worldwide
&lt;ul&gt;
&lt;li&gt;It is the de facto standard for web containers used widely around the world, with many deployment cases.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;High functionality and high performance
&lt;ul&gt;
&lt;li&gt;With JSP/Servlet standard specifications, Tomcat provides functionality equivalent to commercial products, and its performance is equivalent to or even faster than commercial products.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Easy to find engineers
&lt;ul&gt;
&lt;li&gt;Because Tomcat is a de facto standard used worldwide, it is easier to find engineers for projects developed by large teams or for overseas development. It also has advantages such as making it easier to share intellectual assets without extra training costs for environment setup or development.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Can be used for a long time
&lt;ul&gt;
&lt;li&gt;Commercial product support usually lasts 3 to 5 years, but because Tomcat is stable in operation, it can often be used for a long time even without support.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Cost effectiveness
&lt;ul&gt;
&lt;li&gt;Because Tomcat is a high-functionality web container without license fees, it can be used freely and can significantly reduce costs compared with commercial products.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;tomcat-and-servletjsp-version-compatibility-table&#34;&gt;Tomcat and Servlet/JSP Version Compatibility Table&lt;/h2&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Apache Tomcat version&lt;/th&gt;
          &lt;th&gt;Servlet Spec&lt;/th&gt;
          &lt;th&gt;JSP Spec&lt;/th&gt;
          &lt;th&gt;EL Spec&lt;/th&gt;
          &lt;th&gt;WebSocket Spec&lt;/th&gt;
          &lt;th&gt;JDK&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;10.1.x&lt;/td&gt;
          &lt;td&gt;6.0&lt;/td&gt;
          &lt;td&gt;3.1&lt;/td&gt;
          &lt;td&gt;5.0&lt;/td&gt;
          &lt;td&gt;2.1&lt;/td&gt;
          &lt;td&gt;8 or later&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;10.0.x&lt;/td&gt;
          &lt;td&gt;5.0&lt;/td&gt;
          &lt;td&gt;3.0&lt;/td&gt;
          &lt;td&gt;4.0&lt;/td&gt;
          &lt;td&gt;2.0&lt;/td&gt;
          &lt;td&gt;8 or later&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;9.0.x&lt;/td&gt;
          &lt;td&gt;4.0&lt;/td&gt;
          &lt;td&gt;2.3&lt;/td&gt;
          &lt;td&gt;3.0&lt;/td&gt;
          &lt;td&gt;1.1&lt;/td&gt;
          &lt;td&gt;8 or later&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8.5.x&lt;/td&gt;
          &lt;td&gt;3.1&lt;/td&gt;
          &lt;td&gt;2.3&lt;/td&gt;
          &lt;td&gt;3.0&lt;/td&gt;
          &lt;td&gt;1.1&lt;/td&gt;
          &lt;td&gt;7 or later&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8.0.x(EOL)&lt;/td&gt;
          &lt;td&gt;3.1&lt;/td&gt;
          &lt;td&gt;2.3&lt;/td&gt;
          &lt;td&gt;3.0&lt;/td&gt;
          &lt;td&gt;1.1&lt;/td&gt;
          &lt;td&gt;7 or later&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;7.0.x(EOL)&lt;/td&gt;
          &lt;td&gt;3&lt;/td&gt;
          &lt;td&gt;2.2&lt;/td&gt;
          &lt;td&gt;2.2&lt;/td&gt;
          &lt;td&gt;1.1&lt;/td&gt;
          &lt;td&gt;6 or later&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;6.0.x(EOL)&lt;/td&gt;
          &lt;td&gt;2.5&lt;/td&gt;
          &lt;td&gt;2.1&lt;/td&gt;
          &lt;td&gt;2.1&lt;/td&gt;
          &lt;td&gt;-&lt;/td&gt;
          &lt;td&gt;5 or later&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;5.5.x(EOL)&lt;/td&gt;
          &lt;td&gt;2.4&lt;/td&gt;
          &lt;td&gt;2&lt;/td&gt;
          &lt;td&gt;-&lt;/td&gt;
          &lt;td&gt;-&lt;/td&gt;
          &lt;td&gt;1.4 or later&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Reference source: &lt;a href=&#34;http://tomcat.apache.org/whichversion.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;http://tomcat.apache.org/whichversion.html&lt;i class=&#34;fas fa-external-link-alt&#34;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;

      </description>
      
      <category>Tomcat</category>
      
      <category>WEB</category>
      
    </item>
    
    <item>
      <title>Configure Tomcat to Show File Lists When Accessing Web Folders</title>
      <link>https://www.devkuma.com/en/docs/tomcat/web-%ED%8F%B4%EB%8D%94-%EC%A0%91%EA%B7%BC%ED%95%98%EC%97%AC-%ED%8C%8C%EC%9D%BC-%EB%AA%A9%EB%A1%9D-%EB%B3%B4%EA%B8%B0-%EC%84%A4%EC%A0%95/</link>
      <pubDate>Sun, 31 Dec 2017 12:04:39 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/en/docs/tomcat/web-%ED%8F%B4%EB%8D%94-%EC%A0%91%EA%B7%BC%ED%95%98%EC%97%AC-%ED%8C%8C%EC%9D%BC-%EB%AA%A9%EB%A1%9D-%EB%B3%B4%EA%B8%B0-%EC%84%A4%EC%A0%95/</guid>
      <description>
        
        
        &lt;p&gt;This section explains how to configure Tomcat so you can access a folder from the web screen and check the file list.&lt;/p&gt;
&lt;p&gt;With the default settings, if you access a URL folder directly from the browser, a 404 error appears as shown below and access is not possible.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.devkuma.com/docs/tomcat/tomcat_docs_images_1.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;Tomcat&amp;rsquo;s &lt;code&gt;DefaultServlet&lt;/code&gt; is configured by default not to display directory listings. Open Tomcat&amp;rsquo;s &lt;strong&gt;{Tomcat installation folder}/conf/web.xml&lt;/strong&gt; file and find the &lt;code&gt;&amp;lt;servlet&amp;gt;&lt;/code&gt; element for &lt;code&gt;DefaultServlet&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-xml&#34; data-lang=&#34;xml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;... omitted ...
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;servlet&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;servlet-name&amp;gt;&lt;/span&gt;default&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/servlet-name&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;servlet-class&amp;gt;&lt;/span&gt;org.apache.catalina.servlets.DefaultServlet&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/servlet-class&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;init-param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;param-name&amp;gt;&lt;/span&gt;debug&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/param-name&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;param-value&amp;gt;&lt;/span&gt;0&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/param-value&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/init-param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;init-param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;param-name&amp;gt;&lt;/span&gt;listings&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/param-name&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;param-value&amp;gt;&lt;/span&gt;false&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/param-value&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/init-param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;load-on-startup&amp;gt;&lt;/span&gt;1&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/load-on-startup&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/servlet&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;... omitted ...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Here, change the value of the &lt;code&gt;listings&lt;/code&gt; parameter to &lt;code&gt;true&lt;/code&gt; as shown below.&lt;/p&gt;
&lt;h2 id=&#34;before-do-not-display-listings&#34;&gt;Before: Do Not Display Listings&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-xml&#34; data-lang=&#34;xml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;init-param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;param-name&amp;gt;&lt;/span&gt;listings&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/param-name&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;param-value&amp;gt;&lt;/span&gt;false&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/param-value&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/init-param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;after-display-listings&#34;&gt;After: Display Listings&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-xml&#34; data-lang=&#34;xml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;init-param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;param-name&amp;gt;&lt;/span&gt;listings&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/param-name&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;param-value&amp;gt;&lt;/span&gt;true&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/param-value&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/init-param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;After changing the setting to display listings, you can access the folder directly as shown below.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.devkuma.com/docs/tomcat/tomcat_docs_images_2.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;

      </description>
      
      <category>Tomcat</category>
      
      <category>WEB</category>
      
    </item>
    
    <item>
      <title>Restrict Access to Tomcat by Specific IP</title>
      <link>https://www.devkuma.com/en/docs/tomcat/%ED%8A%B9%EC%A0%95-ip-%EC%A0%91%EA%B7%BC-%EC%A0%9C%ED%95%9C/</link>
      <pubDate>Sun, 31 Dec 2017 12:04:39 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/en/docs/tomcat/%ED%8A%B9%EC%A0%95-ip-%EC%A0%91%EA%B7%BC-%EC%A0%9C%ED%95%9C/</guid>
      <description>
        
        
        &lt;p&gt;Tomcat provides options to allow or restrict access from specific IP addresses.&lt;/p&gt;
&lt;p&gt;Add or change the following content between &lt;code&gt;&amp;lt;Host&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;/Host&amp;gt;&lt;/code&gt; in Tomcat&amp;rsquo;s configuration file, &lt;code&gt;conf/server.xml&lt;/code&gt;, then restart Tomcat.&lt;/p&gt;
&lt;h2 id=&#34;allow-access-from-specific-ip-addresses&#34;&gt;Allow Access from Specific IP Addresses&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-xml&#34; data-lang=&#34;xml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;Valve&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;className=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;org.apache.catalina.valves.RemoteAddrValve&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;allow=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;127.0.0.1, 192.168.0.1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;deny-access-from-specific-ip-addresses&#34;&gt;Deny Access from Specific IP Addresses&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-xml&#34; data-lang=&#34;xml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;Valve&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;className=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;org.apache.catalina.valves.RemoteAddrValve&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;deny=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;192.168.0.1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;/&amp;gt;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;references&#34;&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://tomcat.apache.org/tomcat-9.0-doc/config/valve.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;http://tomcat.apache.org/tomcat-9.0-doc/config/valve.html&lt;i class=&#34;fas fa-external-link-alt&#34;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

      </description>
      
      <category>Tomcat</category>
      
      <category>WEB</category>
      
    </item>
    
    <item>
      <title>Tomcat</title>
      <link>https://www.devkuma.com/en/docs/tomcat/</link>
      <pubDate>Sun, 31 Dec 2017 12:04:39 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/en/docs/tomcat/</guid>
      <description>
        
        
        &lt;p&gt;An overview of Tomcat.&lt;/p&gt;

      </description>
      
      <category>Tomcat</category>
      
      <category>WEB</category>
      
    </item>
    
    <item>
      <title>Starting and Stopping Tomcat</title>
      <link>https://www.devkuma.com/en/docs/tomcat/startup-shutdown/</link>
      <pubDate>Sun, 31 Dec 2017 12:04:39 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/en/docs/tomcat/startup-shutdown/</guid>
      <description>
        
        
        &lt;h2 id=&#34;start-tomcat&#34;&gt;Start Tomcat&lt;/h2&gt;
&lt;p&gt;Enter the following at the prompt to start Tomcat.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ ./tomcat/bin/startup.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;check-tomcat-startup&#34;&gt;Check Tomcat Startup&lt;/h3&gt;
&lt;p&gt;After starting Tomcat, enter the following to check whether Tomcat started normally.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ tail tomcat/logs/catalina.out
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;When you enter the command above, the contents of the &lt;code&gt;catalina.out&lt;/code&gt; file are printed on the screen. Check that the last line contains a message like the following.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;23-Mar-2019 01:17:16.985 정보 [main] org.apache.catalina.startup.Catalina.start Server startup in 8176 ms
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;stop-tomcat&#34;&gt;Stop Tomcat&lt;/h2&gt;
&lt;p&gt;Enter the following at the prompt to stop Tomcat.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ ./tomcat/bin/shutdown.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
      </description>
      
      <category>Tomcat</category>
      
      <category>WEB</category>
      
    </item>
    
    <item>
      <title>Tomcat URL Encoding Configuration</title>
      <link>https://www.devkuma.com/en/docs/tomcat/url-encoding/</link>
      <pubDate>Sun, 31 Dec 2017 12:04:39 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/en/docs/tomcat/url-encoding/</guid>
      <description>
        
        
        &lt;p&gt;According to the Tomcat documentation, if URL decoding is not explicitly configured, it defaults to ISO-8859-1. Because of this, if Korean text is passed through GET without configuration, the text becomes garbled. On the other hand, when data is sent through POST, there is no issue because the input stream for the HTTP body is decoded as UTF-8 by default.&lt;/p&gt;
&lt;p&gt;This problem can be solved by changing the encoding in the Tomcat configuration. In &lt;strong&gt;{Tomcat installation folder}/conf/server.xml&lt;/strong&gt;, set &lt;code&gt;URIEncoding&lt;/code&gt; to UTF-8 in the &lt;code&gt;&amp;lt;Connector&amp;gt;&lt;/code&gt; element as shown below.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-xml&#34; data-lang=&#34;xml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;Connector&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;port=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;8080&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;protocol=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;HTTP/1.1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           &lt;span style=&#34;color:#c4a000&#34;&gt;connectionTimeout=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;20000&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           &lt;span style=&#34;color:#c4a000&#34;&gt;redirectPort=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;8443&amp;#34;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           &lt;span style=&#34;color:#c4a000&#34;&gt;URIEncoding=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;UTF-8&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If you use &lt;code&gt;mod_jk&lt;/code&gt; to connect with Apache, make the same change in the &lt;code&gt;mod_jk&lt;/code&gt; configuration section.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-xml&#34; data-lang=&#34;xml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;Connector&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;port=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;8009&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;protocol=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;AJP/1.3&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;redirectPort=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;8443&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;URIEncoding=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;UTF-8&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;references&#34;&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://tomcat.apache.org/tomcat-9.0-doc/config/http.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://tomcat.apache.org/tomcat-9.0-doc/config/http.html&lt;i class=&#34;fas fa-external-link-alt&#34;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

      </description>
      
      <category>Tomcat</category>
      
      <category>WEB</category>
      
    </item>
    
    <item>
      <title>Tomcat Usage | Configure Automatic Redirect from HTTP to HTTPS</title>
      <link>https://www.devkuma.com/en/docs/tomcat/http%EC%97%90%EC%84%9C-https%EB%A1%9C-%EC%9E%90%EB%8F%99-%EB%A6%AC%EB%8B%A4%EC%9D%B4%EB%A0%89%ED%8A%B8-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0/</link>
      <pubDate>Sun, 31 Dec 2017 12:04:39 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/en/docs/tomcat/http%EC%97%90%EC%84%9C-https%EB%A1%9C-%EC%9E%90%EB%8F%99-%EB%A6%AC%EB%8B%A4%EC%9D%B4%EB%A0%89%ED%8A%B8-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0/</guid>
      <description>
        
        
        &lt;p&gt;This section explains how to redirect access from HTTP to HTTPS in Tomcat.&lt;/p&gt;
&lt;h2 id=&#34;configure-ssl-in-serverxml&#34;&gt;Configure SSL in server.xml&lt;/h2&gt;
&lt;p&gt;In Tomcat&amp;rsquo;s &lt;strong&gt;tomcat/conf/server.xml&lt;/strong&gt; file, configure HTTPS on port 443 and also configure HTTP on port 80.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-xml&#34; data-lang=&#34;xml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;UTF-8&amp;#34; standalone=&amp;#34;no&amp;#34;?&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;server&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;Listener&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;className=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;org.apache.catalina.core.AprLifecycleListener&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;SSLEngine=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;on&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;... omitted ...
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;Connector&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;port=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;80&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;protocol=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;HTTP/1.1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           &lt;span style=&#34;color:#c4a000&#34;&gt;connectionTimeout=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;20000&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           &lt;span style=&#34;color:#c4a000&#34;&gt;redirectPort=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;443&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;Connector&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;port=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;443&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;protocol=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;org.apache.coyote.http11.Http11Protocol&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           &lt;span style=&#34;color:#c4a000&#34;&gt;maxThreads=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;150&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;SSLEnabled=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;true&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;scheme=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;https&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;secure=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;true&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           &lt;span style=&#34;color:#c4a000&#34;&gt;clientAuth=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;false&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;sslProtocol=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;TLS&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           &lt;span style=&#34;color:#c4a000&#34;&gt;keystoreFile=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;{keystoreFile}&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;keystorePass=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;{keystorePass}&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;Connector&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;port=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;8009&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;protocol=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;AJP/1.3&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;redirectPort=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;443&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;... omitted ...
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/server&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;add-redirect-settings-to-webxml&#34;&gt;Add Redirect Settings to web.xml&lt;/h2&gt;
&lt;p&gt;Add the following &lt;code&gt;&amp;lt;security-constraint&amp;gt;&lt;/code&gt; setting to the &lt;code&gt;web.xml&lt;/code&gt; file. Then restart Tomcat and access it through HTTP to confirm that it redirects to HTTPS.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-xml&#34; data-lang=&#34;xml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;UTF-8&amp;#34; standalone=&amp;#34;no&amp;#34;?&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;web-app&lt;/span&gt; &lt;span style=&#34;color:#c4a000&#34;&gt;xmlns=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;http://xmlns.jcp.org/xml/ns/javaee&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#c4a000&#34;&gt;xmlns:xsi=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;http://www.w3.org/2001/XMLSchema-instance&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#c4a000&#34;&gt;xsi:schemaLocation=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;http://xmlns.jcp.org/xml/ns/javaee
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#c4a000&#34;&gt;version=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;3.1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ... omitted ...
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;security-constraint&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;web-resource-collection&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;web-resource-name&amp;gt;&lt;/span&gt;HTTP&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/web-resource-name&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;url-pattern&amp;gt;&lt;/span&gt;/*&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/url-pattern&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/web-resource-collection&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;user-data-constraint&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;transport-guarantee&amp;gt;&lt;/span&gt;CONFIDENTIAL&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/transport-guarantee&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/user-data-constraint&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/security-constraint&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;lt;/web&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The &lt;code&gt;&amp;lt;security-constraint&amp;gt;&lt;/code&gt; tag can appear multiple times in the &lt;code&gt;web.xml&lt;/code&gt; file. Tomcat also uses &lt;code&gt;&amp;lt;security-constraint&amp;gt;&lt;/code&gt; for security purposes, such as restricting specific HTTP methods or configuring only specific URLs.&lt;/p&gt;

      </description>
      
      <category>Tomcat</category>
      
      <category>WEB</category>
      
    </item>
    
    <item>
      <title>Tomcat Management and Monitoring Tool Probe</title>
      <link>https://www.devkuma.com/en/docs/tomcat/probe/</link>
      <pubDate>Wed, 30 Jun 2021 16:59:39 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/en/docs/tomcat/probe/</guid>
      <description>
        
        
        &lt;h2 id=&#34;about-probe&#34;&gt;About Probe&lt;/h2&gt;
&lt;p&gt;Probe is a tool that provides Tomcat management and monitoring features. It provides various features such as application status, data sources, deployment, system, and connections.&lt;/p&gt;
&lt;p&gt;This was the first time I learned that this kind of tool existed, and I became curious enough to look into it further.&lt;/p&gt;
&lt;h2 id=&#34;probe-resources&#34;&gt;Probe Resources&lt;/h2&gt;
&lt;p&gt;Perhaps because Probe is not used often, it was hard to find information even by searching the internet. The site I barely found was GitHub.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GitHub source code: &lt;a href=&#34;https://github.com/psi-probe/psi-probe/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://github.com/psi-probe/psi-probe/&lt;i class=&#34;fas fa-external-link-alt&#34;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Official site: &lt;a href=&#34;https://psi-probe.github.io/psi-probe/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://psi-probe.github.io/psi-probe/&lt;i class=&#34;fas fa-external-link-alt&#34;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;trying-probe-installation&#34;&gt;Trying Probe Installation&lt;/h2&gt;
&lt;p&gt;Using the information here, I was able to test installing Probe. The installation method is as follows.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Download the Probe source files with the &lt;code&gt;git clone&lt;/code&gt; command as shown below.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;git clone https://github.com/psi-probe/psi-probe.git
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;When the command is executed, it looks like this.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;kimkc@kimkcui-MacBookPro probe % git clone https://github.com/psi-probe/psi-probe.git
Cloning into &amp;#39;psi-probe&amp;#39;...
remote: Enumerating objects: 54626, done.
remote: Counting objects: 100% (1030/1030), done.
remote: Compressing objects: 100% (499/499), done.
remote: Total 54626 (delta 564), reused 927 (delta 498), pack-reused 53596
Receiving objects: 100% (54626/54626), 33.42 MiB | 10.71 MiB/s, done.
Resolving deltas: 100% (38049/38049), done.
kimkc@kimkcui-MacBookPro probe %
&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;Run the Maven build for the Probe project as follows.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;mvn package
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;When the build runs, the output appears as follows.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;kimkc@kimkcui-MacBookPro psi-probe % mvn package
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] psi-probe                                                          [pom]
[INFO] psi-probe-core                                                     [jar]
[INFO] psi-probe-rest                                                     [jar]
[INFO] psi-probe-tomcat7                                                  [jar]
[INFO] psi-probe-tomcat85                                                 [jar]
[INFO] psi-probe-tomcat9                                                  [jar]
[INFO] psi-probe-web                                                      [war]
[INFO] 

(omitted)

[INFO] Reactor Summary for psi-probe 3.5.5-SNAPSHOT:
[INFO] 
[INFO] psi-probe .......................................... SUCCESS [  1.573 s]
[INFO] psi-probe-core ..................................... SUCCESS [ 20.977 s]
[INFO] psi-probe-rest ..................................... SUCCESS [  1.375 s]
[INFO] psi-probe-tomcat7 .................................. SUCCESS [  4.093 s]
[INFO] psi-probe-tomcat85 ................................. SUCCESS [  3.823 s]
[INFO] psi-probe-tomcat9 .................................. SUCCESS [  3.801 s]
[INFO] psi-probe-web ...................................... SUCCESS [  4.559 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  40.441 s
[INFO] Finished at: 2021-06-30T16:11:58+09:00
[INFO] ------------------------------------------------------------------------
kimkc@kimkcui-MacBookPro psi-probe %
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If all projects are displayed as &lt;code&gt;SUCCESS&lt;/code&gt; as shown above, the build completed properly.&lt;/p&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;Download Tomcat from the &lt;a href=&#34;https://tomcat.apache.org/download-80.cgi&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Tomcat site&lt;i class=&#34;fas fa-external-link-alt&#34;&gt;&lt;/i&gt;&lt;/a&gt;, then extract the file to an appropriate directory.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here, I downloaded the tar.gz file and extracted it with the following command.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;tar -xvf apache-tomcat-8.5.68.tar.gz
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;kimkc@kimkcui-MacBookPro probe % tar -xvf apache-tomcat-8.5.68.tar.gz
x apache-tomcat-8.5.68/conf/
x apache-tomcat-8.5.68/conf/catalina.policy
x apache-tomcat-8.5.68/conf/catalina.properties
x apache-tomcat-8.5.68/conf/context.xml
x apache-tomcat-8.5.68/conf/jaspic-providers.xml
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;After extraction is complete, check the file contents.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;kimkc@kimkcui-MacBookPro apache-tomcat-8.5.68 % cd /Users/kimkc/dev/probe/apache-tomcat-8.5.68 
kimkc@kimkcui-MacBookPro apache-tomcat-8.5.68 % ls
BUILDING.txt    LICENSE         README.md       RUNNING.txt     conf            logs            webapps
CONTRIBUTING.md NOTICE          RELEASE-NOTES   bin             lib             temp            work
kimkc@kimkcui-MacBookPro apache-tomcat-8.5.68 %
&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;Now place the WAR file built with Probe into &lt;code&gt;{tomcat directory}/webapps&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The Probe WAR file is located in the following directory.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;{probe source code directory}/psi-probe-web/target/probe.war
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Put the WAR file into Tomcat&amp;rsquo;s &lt;code&gt;webapps&lt;/code&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;kimkc@kimkcui-MacBookPro psi-probe % cp ./psi-probe-web/target/probe.war ../apache-tomcat-8.5.68/webapps
&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;Finally, add role information to the Tomcat user information file, &lt;code&gt;apache-tomcat-x.x.x/conf/tomcat-users.xml&lt;/code&gt;, as shown below.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;(omitted)
&amp;lt;tomcat-users xmlns=&amp;#34;http://tomcat.apache.org/xml&amp;#34;
              xmlns:xsi=&amp;#34;http://www.w3.org/2001/XMLSchema-instance&amp;#34;
              xsi:schemaLocation=&amp;#34;http://tomcat.apache.org/xml tomcat-users.xsd&amp;#34;
              version=&amp;#34;1.0&amp;#34;&amp;gt;
(omitted)

  &amp;lt;role rolename=&amp;#34;manager-gui&amp;#34;/&amp;gt;
  &amp;lt;role rolename=&amp;#34;manager-script&amp;#34;/&amp;gt;
  &amp;lt;role rolename=&amp;#34;manager-status&amp;#34;/&amp;gt;
  &amp;lt;user username=&amp;#34;devkuma&amp;#34; password=&amp;#34;1234&amp;#34; roles=&amp;#34;manager-gui,manager-script,manager-status&amp;#34;/&amp;gt;

&amp;lt;/tomcat-users&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This Tomcat Probe account has the username &lt;code&gt;devkuma&lt;/code&gt; and the password &lt;code&gt;1234&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If this information is not added, you will not be able to access the Probe web interface.&lt;/p&gt;
&lt;ol start=&#34;5&#34;&gt;
&lt;li&gt;Now restart Tomcat.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;kimkc@kimkcui-MacBookPro bin % ./startup.sh 
Using CATALINA_BASE:   /Users/kimkc/dev/probe/apache-tomcat-8.5.68
Using CATALINA_HOME:   /Users/kimkc/dev/probe/apache-tomcat-8.5.68
Using CATALINA_TMPDIR: /Users/kimkc/dev/probe/apache-tomcat-8.5.68/temp
Using JRE_HOME:        /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
Using CLASSPATH:       /Users/kimkc/dev/probe/apache-tomcat-8.5.68/bin/bootstrap.jar:/Users/kimkc/dev/probe/apache-tomcat-8.5.68/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
kimkc@kimkcui-MacBookPro bin %
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If the screen opens when you access the following link, the installation was successful.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;http://localhost:8080/probe/
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;deploying-web-application-war-files-through-probe&#34;&gt;Deploying Web Application (.war) Files Through Probe&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Move to the following location.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;http://10.10.100.158:8080/probe/adm/deploy.htm
&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;
&lt;p&gt;Select the web service WAR file in &lt;code&gt;Select a .war file to upload *&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enter the &lt;code&gt;Context name (ex. /dummy)&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click the &lt;code&gt;Deploy&lt;/code&gt; button.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Check whether the service runs as entered above. If you entered &lt;code&gt;/dummy&lt;/code&gt; as the &lt;code&gt;Context name&lt;/code&gt;, the web address becomes the following.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;http://10.10.100.158:8080/dummy
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; When deploying through Probe, Tomcat itself is not restarted; only the web application WAR file is replaced and the web service is brought back up. Because the service may pause briefly during this process, it cannot be considered zero-downtime deployment. In any case, using the deployment feature for simple testing is fine, but it should not be used to deploy a real service.&lt;/p&gt;

      </description>
      
      <category>Tomcat</category>
      
      <category>WEB</category>
      
    </item>
    
  </channel>
</rss>
