JEUS Web Engine Guide 

JEUS 8 Fix#1

Document Information

Title: JEUS Web Engine Guide 

Publication Date: 2019-08-02

Software Version: JEUS 8 Fix#1

Edition: v2.1.2

Website

http://www.tmaxsoft.com

Copyright Notice

Restricted Rights Legend

All TmaxSoft Software (JEUS®) and documents are protected by copyright laws and international convention. TmaxSoft software and documents are made available under the terms of the TmaxSoft License Agreement and this document may only be distributed or copied in accordance with the terms of this agreement. No part of this document may be transmitted, copied, deployed, or reproduced in any form or by any means, electronic, mechanical, or optical, without the prior written consent of TmaxSoft Co., Ltd. Nothing in this software document and agreement constitutes a transfer of intellectual property rights regardless of whether or not such rights are registered) or any rights to TmaxSoft trademarks, logos, or any other brand features.

This document is for information purposes only. The company assumes no direct or indirect responsibilities for the contents of this document, and does not guarantee that the information contained in this document satisfies certain legal or commercial conditions. The information contained in this document is subject to change without prior notice due to product upgrades or updates. The company assumes no liability for any errors in this document.

Trademarks

JEUS® is registered trademark of TmaxSoft Co., Ltd.

Java and Solaris are registered trademarks of Oracle Corporation and its subsidiaries and affiliates.

Microsoft, Windows, and Windows NT are registered trademarks or trademarks of Microsoft Corporation.

HP-UX is a registered trademark of Hewlett Packard Enterprise Company.

AIX is a registered trademark of International Business Machines Corporation.

UNIX is a registered trademark of X/Open Company, Ltd.

Linux is a registered trademark of Linus Torvalds.

Noto is a trademark of Google Inc. Noto fonts are open source. All Noto fonts are published under the SIL Open Font License, Version 1.1. (https://www.google.com/get/noto/)

(https://www.google.com/get/noto/)

Other products and company names are trademarks or registered trademarks of their respective owners.

The names of companies, systems, and products mentioned in this manual may not necessarily be indicated with a trademark symbol (TM, ®).

Open Source Software Notice

Some modules or files of this product are subject to the terms of the following licenses. : APACHE2.0, CDDL1.0, EDL1.0, OPEN SYMPHONY SOFTWARE1.1, TRILEAD-SSH2, Bouncy Castle, BSD, MIT, SIL OPEN FONT1.1

Detailed Information related to the license can be found in the following directory : ${INSTALL_PATH}/lib/licenses


Table of Contents

About This Document
1. Web Engine
1.1. Overview
1.2. Components
1.3. Major Functions
1.4. Management Tools
1.4.1. Types of Tools
1.4.2. Controlling and Monitoring
1.5. Directory Structure
1.6. Environment Configurations
1.6.1. XML Configuration Files
1.6.2. Monitoring
1.6.3. Default Error Page
1.6.4. Stack Trace Attachment
1.6.5. Encoding
1.6.6. JSP Engines
1.6.7. Response Headers
1.6.8. Cookie Policy
1.6.9. Sessions
1.6.10. Logs
1.6.11. Async Servlet Timeout Processing
1.6.12. Web Engine Level Properties
1.6.13. Preventing Web Attacks
1.6.14. Blocking HTTP Requests with a Specific URL Pattern
1.7. Tuning the Web Engine
2. Web Connection Management
2.1. Overview
2.2. Components
2.2.1. Listeners
2.2.2. Connectors
2.2.3. Worker Thread Pool
2.3. Configuring Web Connections
2.3.1. Common Listener Settings
2.3.2. AJP Listeners
2.3.3. HTTP Listeners
2.3.4. TCP Listeners
2.3.5. WebtoB Connectors
2.3.6. Tmax Connectors
2.3.7. Automatic Thread Pool Management (Thread State Notification)
2.4. Configuring Web Server Load Balancing
2.4.1. Load Balancing Structure
2.4.2. Apache
2.4.3. IIS and Iplanet Web Servers
2.4.4. Load Balancing with WebtoB
2.5. Using TCP Listeners
2.5.1. Defining Custom Communication Protocols
2.5.2. Implementing Dispatcher Configuration Classes
2.5.3. Implementing TCP Servlets
2.5.4. Configuring TCP Listeners for Custom Protocols
2.5.5. Implementing TCP Clients
2.5.6. TCP Client Compilation and Execution
2.6. Using HTTP/2
2.6.1. Configuring HTTP/2
2.6.2. Server Push
2.7. Tuning Listeners
3. Web Contexts
3.1. Overview
3.2. Basic Structure
3.2.1. Web Context Contents
3.2.2. Web Context Structure (WAR File Structure)
3.3. Deploying Web Contexts
3.3.1. jeus-web-dd.xml Configuration
3.3.2. Web Context Redeployment (Graceful Redeployment)
3.3.3. Adding Shared Library References
3.3.4. Configuring Web Contexts for Compatibility
3.3.5. Configuring Additional Functions
3.3.6. Configuring Web Security
3.3.7. Mapping Security Roles
3.3.8. Mapping Symbolic References
3.4. Monitoring Web Contexts
3.5. Controlling Web Contexts
3.5.1. Reloading Web Contexts
3.5.2. Monitoring a Thread Pool for Asynchronous Requests in a Web Context
3.5.3. Suspending Web Contexts
3.5.4. Resuming Web Contexts
3.6. Tuning Web Contexts
3.7. Asynchronous Processing Programming
3.7.1. Precautions for Using Servlet Standards
3.7.2. Other Considerations
4. JSP Engine
4.1. Overview
4.2. Apache Tomcat Jasper
4.3. JSP Engine Functions
4.3.1. JSP Graceful Reloading
4.3.2. JSP Precompilation
4.3.3. JSP Compilation and Execution in Memory
4.4. Configuring JSP Engines
4.4.1. Web Engine Level Configuration
4.4.2. Configuring jeus-web-dd.xml
4.4.3. Web Context Options for JSP Backward Compatibility
4.4.4. Configuring jarscan.properties
5. Virtual Hosts
5.1. Overview
5.2. Web Engine and Virtual Hosts
5.2.1. ServletContext Object and Virtual Hosts
5.3. Web Context Requests to Virtual Host
5.3.1. URL Matching Example
5.3.2. URL Matching Order
5.4. Configuring Virtual Hosts
5.4.1. Addition
5.4.2. Modification
5.4.3. Deletion
6. WebSocket Container
6.1. Overview
6.2. Constraints
6.3. WebSocket Container Functions
6.3.1. WebSocket UserProperties Failover
6.3.2. Other Functions
6.4. Configuring WebSocket Container
7. JEUS WebCache
7.1. Overview
7.2. JSP Caching
7.2.1. Basic Information
7.2.2. <cache> Tag
7.2.3. Example of Using <jeus:cache>
7.2.4. Using Flush
7.2.5. Using Refresh
7.3. HTTP Response Caching
7.3.1. Configuring Filters
8. Reverse Proxy
8.1. Overview
8.1.1. Examples
8.2. Usage
8.2.1. Configuring a Proxy Server
8.2.2. Configuring the Context Path
8.2.3. Configuring Proxy Filters
8.2.4. Deploy
8.3. Configuration Example
9. Reloading Classes at Runtime
9.1. Overview
9.2. Basic Configurations and Operation
9.2.1. Configuring Servers
9.2.2. Configuring Applications
9.2.3. Applications and Modifications Supported by JEUS HotSwap
9.2.4. JEUS HotSwap Constraints
10. Practice
Index

List of Figures

[Figure 1.1] Web Engine Components
[Figure 1.2] Web Engine Monitoring - Menus
[Figure 1.3] Web Engine Monitoring - Statistics
[Figure 1.4] ListSession - Manager Selection
[Figure 1.5] ListSession - Manager Results
[Figure 1.6] Web Engine Directory Structure
[Figure 1.7] Apply Changes - Configuration Mode
[Figure 1.8] Apply Changes - Activate Changes
[Figure 1.9] Advanced Options
[Figure 1.10] Configuring Monitoring - Menus
[Figure 1.11] Configuring Monitoring - Configuration
[Figure 1.12] Configuring Monitoring - Result
[Figure 1.13] Default Error Page - Configuration
[Figure 1.14] Default Error Page - Result
[Figure 1.15] Configuring Stack Trace Attachment - Configuration
[Figure 1.16] Configuring Stack Trace Attachment - Result
[Figure 1.17] Web Engine Encoding - Configuration
[Figure 1.18] Web Engine Encoding - Result
[Figure 1.19] Web Engine Response Headers - Configuration
[Figure 1.20] Web Engine Response Headers - Result
[Figure 1.21] Web Engine Cookie Policy - Configuration
[Figure 1.22] Web Engine Cookie Policy - Result
[Figure 1.23] Web Engine Access Logs - Menus
[Figure 1.24] Web Engine Access Logs - Configuration
[Figure 1.25] Web Engine Access Logs - Result
[Figure 1.26] User Logs - Configuration
[Figure 1.27] User Logs - Adding a Handler
[Figure 1.28] User Logs - Configuring the Handler
[Figure 1.29] User Logs - Handler Added
[Figure 1.30] User Logs - Result
[Figure 1.31] Async Servlet Timeout Processing - Configuration
[Figure 1.32] Async Servlet Timeout Process - Result
[Figure 1.33] 웹 Web Engine Properties - Configuration
[Figure 1.34] Web Engine Properties - Result
[Figure 1.35] Preventing Web Attacks - Menu
[Figure 1.36] Preventing Web Attacks - Advanced Options
[Figure 1.37] Prevention of Requesting HTTP with the URL Pattern - Advanced Options Settings
[Figure 2.1] Web Engine Listeners
[Figure 2.2] Web Engine Connectors
[Figure 2.3] Compression Configuration - Advanced
[Figure 2.4] Configuring AJP Listeners - Adding a Listener
[Figure 2.5] Configuring AJP Listeners - Basic Configuration
[Figure 2.6] Configuring AJP Listeners - Thread Pool Configuration
[Figure 2.7] Configuring AJP Listeners - Configuring Thread State Notifications
[Figure 2.8] Configuring AJP Listeners - Advanced Options
[Figure 2.9] Configuring AJP Listeners - Listener Added
[Figure 2.10] Configuring AJP Listeners - Result
[Figure 2.11] Deleting AJP Listeners - Menu
[Figure 2.12] Deleting AJP Listeners - Result
[Figure 2.13] Configuring HTTP Listeners - Basic Configuration
[Figure 2.14] Adding and Modifying HTTP Listeners - Thread Pool Configuration
[Figure 2.15] Configuring HTTP Listeners - Advanced Options
[Figure 2.16] Configuring HTTP Listeners - Listener Added
[Figure 2.17] Deleting HTTP Listeners - Result
[Figure 2.18] Configuring TCP Listeners - Basic Configuration
[Figure 2.19] Configuring TCP Listeners - Advanced Options
[Figure 2.20] Configuring TCP Listeners - Listener Added
[Figure 2.21] Deleting TCP Listeners - Result
[Figure 2.22] Configuring WebtoB Connectors - Basic Info
[Figure 2.23] Configuring WebtoB Connectors - Connection
[Figure 2.24] Configuring WebtoB Connectors - Thread Pool
[Figure 2.25] Configuring WebtoB Connectors - Advanced Options
[Figure 2.26] Configuring WebtoB Connectors - Connector Added
[Figure 2.27] Deleting WebtoB Connectors - Result
[Figure 2.28] Configuring Tmax Connectors - Basic Information
[Figure 2.29] Configuring Tmax Connectors - Advanced Options
[Figure 2.30] Configuring Tmax Connectors - Connector Added
[Figure 2.31] Deleting Tmax Connectors - Result
[Figure 2.32] Configuring Automatic Thread Pool Management - Thread State Notify
[Figure 2.33] Load Balancing Structure
[Figure 2.34] Load Balancing Server Structure
[Figure 2.35] WebtoB Connector Configurations
[Figure 3.1] WAR File Structure
[Figure 3.2] Monitoring Web Contexts - Application List
[Figure 3.3] Monitoring Web Contexts - Web Application Information
[Figure 3.4] Monitoring Web Contexts - Web Application Details
[Figure 3.5] Reloading Web Contexts
[Figure 3.6] Web Application thread-info
[Figure 4.1] Configuring a JSP Engine - Menu
[Figure 4.2] Configuring a JSP Engine - Basic Configuration
[Figure 4.3] Configuring the JSP Engine - Result
[Figure 5.1] Virtual Host Usage Pattern
[Figure 5.2] Relationships between a Web Engine, Virtual Hosts, and Web Contexts
[Figure 5.3] Adding a Virtual Host - Menu
[Figure 5.4] Adding a Virtual Host - Configuration
[Figure 5.5] Adding a Virtual Host - Result
[Figure 5.6] Modifying a Virtual Host - Configuration
[Figure 5.7] Modifying a Virtual Host - Configuring Access Logs
[Figure 5.8] Modifying a Virtual Host - Result
[Figure 5.9] Deleting a Virtual Host
[Figure 7.1] Cache Data Structure

List of Examples

[Example 1.1] XML Header : <<domain.xml>>
[Example 1.2] XML Header : <<jeus-web-dd.xml>>
[Example 1.3] XML Header : <<web.xml >>
[Example 1.4] Request Encoding Configuration in <<jeus-web-dd.xml>>
[Example 1.5] Page Character Encoding Configuration in <<sample.jsp>>
[Example 1.6] Response Character Encoding in <<sample2.jsp>>
[Example 1.7] Page and Response Character Encoding Configurations in <<web.xml>>
[Example 1.8] Definition of jeus.servlet.logger.AccessLoggerFilter Interface
[Example 1.9] Example of Defining a Filter Class
[Example 2.1] mod_jk Configuration File Example: <<workers.properties>>
[Example 2.2] Configuration mod_jk in Apache: <<httpd.conf>>
[Example 2.3] WebtoB Configuration Example: <<http.m>>
[Example 2.4] TCPDispatcherConfig Implementation: <<SampleConfig.java>>
[Example 2.5] TCPServlet Implementation: <<SampleTCPServlet.java>>
[Example 2.6] TCP Handler Deployment Descriptor: <<web.xml>>
[Example 2.7] TCP Client Implementation: <<Client.java>>
[Example 2.8] Example of using Server Push: <<ServerPushServlet.java>>
[Example 3.1] Web Context Configuration File: <<jeus-web-dd.xml>>
[Example 3.2] Adding Shared Library References: <<libraries.xml>>
[Example 3.3] Servlet Mapping for Static Resources: <<web.xml>>
[Example 3.4] Redirect Location Security Configuration Interface
[Example 3.5] Redirect Location Security Configuration Implementation Example
[Example 3.6] Redirect Location Security Configuration: <<jeus-web-dd.xml>>
[Example 3.7] Mapping Security Roles: <<web.xml>>
[Example 3.8] Mapping Security Roles: <<jeus-web-dd.xml>>
[Example 3.9] Mapping Symbolic References: <<web.xml>>
[Example 3.10] Mapping Symbolic References: <<jeus-web-dd.xml>>
[Example 3.11] <async-config> Configuration: <<jeus-web-dd.xml>>
[Example 3.12] Example of Faulty Asynchronous Processing Program (1)
[Example 3.13] Example of Faulty Asynchronous Processing Program (2)
[Example 3.14] Example of Faulty Asynchronous Processing Program (3)
[Example 4.1] Web Context Configuration File: <<jeus-web-dd.xml>>
[Example 4.2] Web Context Options for JSP Backward Compatibility: <<jeus-web-dd.xml>>
[Example 4.3] Setting for Avoiding Unnecessary tld Scanning: <<jarscan.properies>>
[Example 6.1] WebSocket UserProperties Failover Setting: <<jeus-web-dd.xml>>
[Example 6.2] Web Context Configuration File: <<jeus-web-dd.xml>>
[Example 7.1] Configuring <cache> Tag: <<jeuscache.tld>>
[Example 7.2] Using <jeus:cache>: <<cache.jsp>>
[Example 7.3] Using <jsp:include>: <<main.jsp>>
[Example 7.4] Configuring Filters: <<web.xml>>
[Example 8.1] data.xml DTD: <<proxy-config.dtd>>
[Example 8.2] Using Only a Proxy Filter: <<web.xml>>
[Example 8.3] Using Both a Proxy Filter and a Rewrite Filter: <<web.xml>>
[Example 9.1] Configuring Automatic Reloading: <<startDomainAdminServer>>
[Example 9.2] Configuring Automatic Reloading: <<startManagedServer>>
[Example 9.3] Configuring Automatic Reloading: <<jeus-web-dd.xml>>