> For the complete documentation index, see [llms.txt](https://docs.ovaledge.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ovaledge.com/release8.2/deployment-and-maintenance/installation/tomcat-10.1.x-on-windows.md).

# 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.2/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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
