JEUS Web Engine Guide 

JEUS v7.0 Fix #4

Restricted Rights Legend

All TmaxSoft Software (Tmax®) 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 may only be used 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. Other products, titles or services may be registered trademarks of their respective companies.

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

Document Information

Document Name: JEUS Web Engine Guide 

Document Created: 2017-03-13

Software Version: JEUS v7.0 Fix #4

Document Version: v2.1.6


Table of Contents

About This Document
1. JEUS Web Engines
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. Web Engine Tuning
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
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. TCP Listeners for Custom Protocols
2.5.5. TCP Client Implementation
2.5.6. TCP Client Compilation and Execution
2.6. 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 Configurations
3.3.2. Web Context Deployment (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. Thread Pool Monitoring 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 Precautions
4. JSP Engine
4.1. Overview
4.2. Apache Tomcat Jasper
4.3. JSP Engine Functions
4.3.1. Reloading JSP Files
4.3.2. Precompiling JSP Files
4.3.3. JSP Compilation and Execution in Memory
4.4. Configuring JSP Engines
4.4.1. Configuring at the Web Engine Level
4.4.2. Configuring jeus-web-dd.xml
4.4.3. Web Context Options for JSP Backward Compatibility
5. Virtual Hosts
5.1. Overview
5.2. Web Engine and Virtual Host
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 Session Failover
6.3.2. Other Functions
6.4. WebSocket Container Configurations
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. Deployment
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. Configuration Results
9.2.4. Applications and Modifications Supported by JEUS HotSwap
9.2.5. 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] server1 Web Engine Monitoring - Statistics
[Figure 1.4] Web Engine Directory Structure
[Figure 1.5] Apply Changes Button
[Figure 1.6] Advanced Options
[Figure 1.7] Configuring Monitoring - Menus
[Figure 1.8] Configuring Monitoring - Configuration
[Figure 1.9] Configuring Monitoring - Result
[Figure 1.10] Default Error Page - Configuration
[Figure 1.11] Default Error Page - Result
[Figure 1.12] Configuring Stack Trace Attachment - Configuration
[Figure 1.13] Configuring Stack Trace Attachment - Result
[Figure 1.14] Web Engine Encoding - Configuration
[Figure 1.15] Web Engine Encoding - Result
[Figure 1.16] Web Engine Response Headers - Configuration
[Figure 1.17] Web Engine Response Headers - Result
[Figure 1.18] Web Engine Cookie Policy - Configuration
[Figure 1.19] Web Engine Cookie Policy - Result
[Figure 1.20] Web Engine Access Logs - Menus
[Figure 1.21] Web Engine Access Logs - Configuration
[Figure 1.22] Web Engine Access Logs - Result
[Figure 1.23] User Logs - Configuration
[Figure 1.24] User Logs - Adding a Handler
[Figure 1.25] User Logs - Configuring the Handler
[Figure 1.26] User Logs - Handler Added
[Figure 1.27] User Logs - Result
[Figure 1.28] Async Servlet Timeout Processing - Configuration
[Figure 1.29] Async Servlet Timeout Process - Result
[Figure 1.30] Web Engine Properties - Configuration
[Figure 1.31] Web Engine Properties - Result
[Figure 1.32] Preventing Web Attacks - Menu
[Figure 1.33] Preventing Web Attacks - Advanced Options
[Figure 1.34] 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 - Selection
[Figure 2.13] Deleting AJP Listeners - Result
[Figure 2.14] Configuring HTTP Listeners - Basic Configuration
[Figure 2.15] Configuring HTTP Listeners - Advanced Options
[Figure 2.16] Configuring HTTP Listeners - Listener Added
[Figure 2.17] Deleting HTTP Listeners - Deleting
[Figure 2.18] Deleting HTTP Listeners - Result
[Figure 2.19] Configuring TCP Listeners - Basic Configuration
[Figure 2.20] Configuring TCP Listeners - Advanced Options
[Figure 2.21] Configuring TCP Listeners - Listener Added
[Figure 2.22] Deleting TCP Listeners - Deleting
[Figure 2.23] Deleting TCP Listeners - Result
[Figure 2.24] Configuring WebtoB Connectors - Basic Info
[Figure 2.25] Configuring WebtoB Connectors - Connection
[Figure 2.26] Configuring WebtoB Connectors - Thread Pool
[Figure 2.27] Configuring WebtoB Connectors - Thread State Notification
[Figure 2.28] Configuring WebtoB Connectors - Advanced Options
[Figure 2.29] Configuring WebtoB Connectors - Connector Added
[Figure 2.30] Deleting WebtoB Connectors - Deleting
[Figure 2.31] Deleting WebtoB Connectors - Result
[Figure 2.32] Configuring Tmax Connectors - Basic Information
[Figure 2.33] Configuring Tmax Connectors - Advanced Options
[Figure 2.34] Configuring Tmax Connectors - Connector Added
[Figure 2.35] Deleting Tmax Connectors - Deleting
[Figure 2.36] Deleting Tmax Connectors - Connector Deleted
[Figure 2.37] Deleting Tmax Connectors - Result
[Figure 2.38] Configuring Automatic Thread Pool Management - Thread State Notify
[Figure 2.39] Load Balancing Structure
[Figure 2.40] Load Balancing Server Structure
[Figure 2.41] 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 Virtual Hosts - Menu
[Figure 5.4] Adding Virtual Hosts - Configuration
[Figure 5.5] Adding Virtual Hosts - Result
[Figure 5.6] Modifying Virtual Hosts - Configuration
[Figure 5.7] Modifying Virtual Hosts - Configuring Access Logs
[Figure 5.8] Modifying Virtual Hosts - Result
[Figure 5.9] Deleting Virtual Hosts
[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] JSP Example that Sets Page Character Encoding: Request Encoding
[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 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] Registering ResourceServlet for Spring 3.0 mvc:default-servlet-handler in JEUS 7 Fix #1: <<web.xml>>
[Example 3.5] Redirect Location Security Configuration Interface: <<RedirectStrategy>>
[Example 3.6] Redirect Location Security Configuration Implementation Example: <<RejectCrlfRedirectStrategy>>
[Example 3.7] Redirect Location Security Configuration: <<jeus-web-dd.xml>>
[Example 3.8] Mapping Security Roles: <<web.xml>>
[Example 3.9] Mapping Security Roles: <<jeus-web-dd.xml>>
[Example 3.10] Mapping Symbolic References: <<web.xml>>
[Example 3.11] Mapping Symbolic References: <<jeus-web-dd.xml>>
[Example 3.12] <async-config> Configuration : <<jeus-web-dd.xml>>
[Example 3.13] Example of Faulty Asynchronous Processing Program (1)
[Example 3.14] Example of Faulty Asynchronous Processing Program (2)
[Example 3.15] 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 6.1] 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 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>>