# Tomcat 10.1.x on Windows

Apache Tomcat is an open-source implementation of the Java Servlet, JavaServer Pages (JSP), and WebSocket technologies. It is widely used to deploy Java-based web applications. This document provides a detailed, step-by-step process for installing and configuring both single-instance and multi-instance Tomcat setups on a Windows machine for OvalEdge deployment.

### Pre-requisites

Before proceeding with the installation, ensure the following requirements are met:

* Windows OS (Windows 10 or later recommended)
* Administrator privileges
* Java 17 installed and configured
* Ensure the JAVA\_HOME environment variable is set
* Refer to the [Java Installation Guide](/release8.1/deployment-and-maintenance/installation/java-21-on-windows-machine.md) if Java is not configured

## Single Tomcat Installation

* **Prepare Directory Structure**

  Create a base folder, e.g., `C:\ovaledge`, to store all required files.

  <figure><img src="/files/MmD3F9bQPbPTV9J685uZ" alt=""><figcaption></figcaption></figure>
* Inside this folder, create subfolders:

  * `temp`
  * `extprop`
  * `Third_party_jars`

  <figure><img src="/files/5fdaai9bb2ysao2kECdF" alt=""><figcaption></figcaption></figure>
* **Place Required Files**
  * **Configuration Files**: Place `oasis.properties` and `log4j.properties` inside the `extprop` folder (provided by GCS team).

    <figure><img src="/files/DIXtFU7pYEVASrzPsGyN" alt=""><figcaption></figcaption></figure>
  * **JAR Files**: Place required third-party JARs in the `Third_party_jars` folder.

    <figure><img src="/files/xotvOHO9DeZm5qvMREuo" alt=""><figcaption></figcaption></figure>
* **Download and Extract Tomcat**
  * Download [Apache Tomcat ](https://ovaledge.s3.us-west-1.amazonaws.com/scripts/hardened_tomcat/apache-tomcat-10.1.40-windows-x64.zip)(ZIP package).
  * Extract contents under `C:\ovaledge`.

    <figure><img src="/files/kGAe8cJFxUtWFLPMAx7q" alt=""><figcaption></figcaption></figure>
* **Deploy WAR File**
  * Navigate to the `webapps` folder inside the Tomcat directory.
  * Place the `ovaledge.war` file (provided by GCS team).

    <figure><img src="/files/8wfcen57K3HPoB816LCP" alt=""><figcaption></figcaption></figure>
* **Install Tomcat as a Windows Service**
  * Navigate to the `bin` folder inside Tomcat and open Command Prompt.

    <figure><img src="/files/MUbWvyyKHFNTh7kF7yAx" alt=""><figcaption></figcaption></figure>
  * Run the command:

    ```bash
    service.bat install tomcat
    ```

    <figure><img src="/files/7zsWw74HGq0U20syVcyZ" alt=""><figcaption></figcaption></figure>
* **Configure Java Options for Tomcat**
  * Open Tomcat service properties:

    ```bash
    tomcat10w.exe //ES//tomcat
    ```

    <figure><img src="/files/WsC7rBcM3o0xQvQ3vy45" alt=""><figcaption></figcaption></figure>
  * Go to the **Java** tab and add:

    ```
    -DOVALEDGE_SECURITY_TYPE=db
    -Dext.properties.dir=file:C:\ovaledge\extprop\
    -Dlog4j.configuration=file:C:\ovaledge\extprop\log4j.properties
    -DOVALEDGE_ENCRYPT_DECRYPT_KEY=client_input
    --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED
    --add-opens=jdk.zipfs/jdk.nio.zipfs=ALL-UNNAMED
    --add-opens=java.base/java.net=ALL-UNNAMED
    ```
  * Confirm with GCS/DevOps team:
    * `ext.properties.dir` path
    * `log4j.configuration` path
    * Encryption key value
    * Java heap settings (per VM specification)\
      ![](/files/CYvBAInSVtrr10NwSSX2)
* **Update `oasis.properties`**
  * Configure:
    * Database connection details
    * Elasticsearch configuration (if applicable)
    * Path to third-party JAR files

      <figure><img src="/files/B4V9hx3W5Zq71CUGMFXW" alt=""><figcaption></figcaption></figure>

      <figure><img src="/files/dnA3GjdkMlkdoSqVkT6j" alt=""><figcaption></figcaption></figure>

      \
      ![](/files/w25Xq51X7w7rvlYm7xBW)
* **Start Tomcat Service**
  * Open **Services** from Windows Start menu.
  * Locate and start the Tomcat service.

    <figure><img src="/files/o93RctkoamfNTJ6yW8A5" alt=""><figcaption></figcaption></figure>

    <figure><img src="/files/dLiO5mMQrdnFfjfKObtR" alt=""><figcaption></figcaption></figure>
  * In Properties:
    * Set **Startup type** → *Automatic (Delayed Start)*\
      ![](/files/Hj8i1LNQtC62fJBkQKGh)
    * Update **Log On** credentials as required and click **OK**.\
      ![](/files/wLwKYOfpwbGzblVGrg22)

## Multi-Tomcat Installation (UI + Job)

For multi-instance setups, two Tomcats are configured:

* Two Tomcats are configured:
  * `tomcatui` → User Interface (UI)
  * `tomcatjob` → Job Processing
* **Repeat Initial Setup**
  * Follow **Single Tomcat Installation steps** until WAR deployment.
* **Duplicate Tomcat Directory**
  * Create two copies of the Tomcat directory.
  * Rename:

    * One to `tomcatui`
    * One to `tomcatjob`

    <figure><img src="/files/TAqBYyGBZrrOBVviz5sI" alt=""><figcaption></figcaption></figure>
* **Update Ports for `tomcatjob`**
  * Navigate to `tomcatjob\conf\server.xml`.
  * Modify:
    * Shutdown port → `8005` → `8006`

      <figure><img src="/files/CCnj3i4nmcurAbSBzeSF" alt=""><figcaption></figcaption></figure>

      <figure><img src="/files/5JqrK4YNJaoMz3iOfFmK" alt=""><figcaption></figcaption></figure>

      <figure><img src="/files/3xWIUP3gy6qUWGKcp71H" alt=""><figcaption></figcaption></figure>
    * HTTP port → `8080` → `8081`&#x20;

      <figure><img src="/files/Bxy4DKEuQ2lqvKRy8n8a" alt=""><figcaption></figcaption></figure>

      <figure><img src="/files/7Dl3xGuMEs5xzpm2ztFF" alt=""><figcaption></figcaption></figure>
* **Install and Configure `tomcatui` Service**
  * Navigate to `tomcatui\bin` and open Command Prompt:

    ```bash
    service.bat install tomcatui
    ```

    <figure><img src="/files/pgJKpDZNFZYDu6vkm1CB" alt=""><figcaption></figcaption></figure>

    <figure><img src="/files/ABOf7RvJCVHY6rT5pKIS" alt=""><figcaption></figcaption></figure>

    ```bash
    tomcat10w.exe //ES//tomcatui
    ```

    <figure><img src="/files/4JuMs0gXtxQKvDXXDhvA" alt=""><figcaption></figcaption></figure>
  * In the Java tab, add:\
    ![](/files/JGicXCNcgYgI3LrQ0Ubj)

    ```
    -DOVALEDGE_SECURITY_TYPE=db
    -Dpod.type=ovaledge-ui-deployment
    -Dext.properties.dir=file:C:\ovaledge\extprop\
    -Dlog4j.configuration=file:C:\ovaledge\extprop\log4j.properties
    -DOVALEDGE_ENCRYPT_DECRYPT_KEY=client_input
    --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED
    --add-opens=jdk.zipfs/jdk.nio.zipfs=ALL-UNNAMED
    --add-opens=java.base/java.net=ALL-UNNAMED
    ```
* **Install and Configure `tomcatjob` Service**
  * Navigate to `tomcatjob\bin` and open Command Prompt:

    ```bash
    service.bat install tomcatjob
    ```

    <figure><img src="/files/AFqOZhrM4lokYM922ww3" alt=""><figcaption></figcaption></figure>

    <figure><img src="/files/1oH85OHahGPNXOxq9Kwi" alt=""><figcaption></figcaption></figure>

    ```
    tomcat10w.exe //ES//tomcatjob
    ```

    <figure><img src="/files/KjqItAXTyZLaIONGELBS" alt=""><figcaption></figcaption></figure>
  * In the Java tab, add:

    ```
    -DOVALEDGE_SECURITY_TYPE=db
    -Dpod.type=ovaledge-job-deployment
    -Dext.properties.dir=file:C:\ovaledge\extprop\
    -Dlog4j.configuration=file:C:\ovaledge\extprop\log4j.properties
    -DOVALEDGE_ENCRYPT_DECRYPT_KEY=client_input
    --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED
    --add-opens=jdk.zipfs/jdk.nio.zipfs=ALL-UNNAMED
    --add-opens=java.base/java.net=ALL-UNNAMED
    ```
* **Final Configuration and Startup**
  * Ensure `oasis.properties` is properly updated.
  * Start `tomcatui` and `tomcatjob` services from Services panel.

    <figure><img src="/files/YMGyfPIDtcRnjuTV7CEU" alt=""><figcaption></figcaption></figure>
  * Set **Startup type** to *Automatic (Delayed Start)* for both.

    <figure><img src="/files/XpQX0oWkhbtlTnTNTYEE" alt=""><figcaption></figcaption></figure>

    \
    ![](/files/qZMsfjLitXn4kvdw92MB)
  * Update **Log On** settings with proper credentials and restart services.\
    ![](/files/zjK2rr8eAybJZmuz5GEc)

***

Copyright © 2025, OvalEdge LLC, Peachtree Corners, GA, USA.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ovaledge.com/release8.1/deployment-and-maintenance/installation/tomcat-10.1.x-on-windows.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
