Tomcat、Open Liberty 和 WebSphere Application Server (WAS) 的配置、调试和跟踪
一、Tomcat
Tomcat 是一个轻量级的开源 Java Servlet 容器。
1、配置
Tomcat 的主要配置文件位于其安装目录下的 conf 文件夹中。
server.xml: 这是 Tomcat 的核心配置文件,包含了服务器的基本设置,例如端口号、连接器配置、虚拟主机配置、以及全局的资源定义等。- 端口号: 在
<Connector>元素中配置port属性,例如<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />设置 HTTP 端口为 8080。 - 虚拟主机: 通过
<Host>元素配置虚拟主机,可以定义不同的域名或 IP 地址对应不同的 Web 应用。例如:<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"><Alias>mywebsite.com</Alias><Context path="" docBase="ROOT" reloadable="true" /> </Host> - Context: 通过
<Context>元素配置 Web 应用的上下文路径、文档根目录等。通常在server.xml中配置全局的 Context,也可以在conf/[enginename]/[hostname]目录下创建 XML 文件来配置特定虚拟主机的 Context。 - 连接器:
<Connector>元素定义了 Tomcat 如何接收和处理客户端请求。可以配置不同的协议(HTTP/1.1, AJP),SSL/TLS 设置等。
- 端口号: 在
web.xml: 这是 Web 应用的部署描述符,位于每个 Web 应用的WEB-INF目录下。它定义了 Servlet、Filter、Listener、Welcome 文件、错误页面等。context.xml: 可以配置特定 Web 应用的上下文参数,例如数据源、资源引用等。通常位于 Web 应用的META-INF目录下,也可以在conf/[enginename]/[hostname]目录下创建 XML 文件。logging.properties: 配置 Tomcat 的日志行为,例如日志级别、输出格式、输出目标等。
配置示例 (修改端口号):
- 打开 Tomcat 安装目录下的
conf/server.xml文件。 - 找到
<Connector port="8080" ...>这一行。 - 将
port属性的值修改为你想要的端口号,例如8090。 - 保存文件并重启 Tomcat。
2、调试
Tomcat 支持远程调试,可以通过 Java 调试器(例如 IntelliJ IDEA 或 Eclipse)连接到 Tomcat 进程进行调试。
- 启用远程调试:
- 找到 Tomcat 安装目录下的
bin文件夹。 - 编辑
catalina.sh(Linux/macOS) 或catalina.bat(Windows) 文件。 - 在启动 Tomcat 的命令之前添加以下 JVM 参数:
- Linux/macOS:
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n" - Windows:
set CATALINA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n - 参数说明:
-Xdebug: 启用调试模式。-Xrunjdwp: 配置 JDWP (Java Debug Wire Protocol)。transport=dt_socket: 使用 Socket 传输。address=8000: 调试器连接的端口号,可以自定义。server=y: Tomcat 作为调试服务器。suspend=n: Tomcat 启动时不等待调试器连接。如果设置为y,Tomcat 会等待调试器连接后才启动。
- Linux/macOS:
- 找到 Tomcat 安装目录下的
- 启动 Tomcat: 运行
catalina.sh start或catalina.bat start命令启动 Tomcat。 - 连接调试器:
- 在你的 IDE 中创建一个远程调试配置。
- 配置连接的主机为 Tomcat 运行的服务器 IP 地址或
localhost。 - 配置端口号为你在
CATALINA_OPTS或set CATALINA_OPTS中设置的端口号(例如8000)。 - 启动调试器。
- 设置断点: 在你的 Java 代码中设置断点。
- 触发请求: 访问你的 Web 应用,当代码执行到断点时,调试器会暂停,你可以检查变量、单步执行等。
3、跟踪
Tomcat 使用 Java Util Logging (JUL) 进行日志记录。
- 配置日志级别: 在
conf/logging.properties文件中可以配置不同包或类的日志级别。例如,要将org.apache.catalina包的日志级别设置为FINE: Properties
常见的日志级别包括:org.apache.catalina.level = FINESEVERE,WARNING,INFO,CONFIG,FINE,FINER,FINEST,ALL. - 配置日志输出: 可以配置日志的输出格式、输出目标(例如控制台、文件)。默认情况下,Tomcat 会将日志输出到
logs文件夹下的文件中,例如catalina.out、localhost.log等。 - 使用 Valve 进行请求跟踪: Tomcat 提供了 Valve 机制,可以拦截和处理请求。
AccessLogValve可以记录每个请求的详细信息,例如客户端 IP、请求时间、请求方法、URL、响应状态码等。- 在
conf/server.xml的<Host>元素中添加<Valve>元素来配置AccessLogValve:<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log" suffix=".txt"pattern="%h %l %u %t "%r" %s %b" resolveHosts="false"/>directory: 日志文件存放目录。prefix: 日志文件名前缀。suffix: 日志文件名后缀。pattern: 日志格式。常用的格式包括:%h: 远程主机名。%l: 远程逻辑用户名 (总是-)。%u: 远程用户。%t: 日期和时间。%r: 请求的第一行。%s: 响应状态码。%b: 发送的字节数。%D: 处理请求所花费的时间 (毫秒)。
- 在
- 自定义日志: 你可以在你的 Web 应用中使用 SLF4j 或 Logback 等日志框架,并在 Tomcat 中进行配置,以实现更灵活的日志管理。
二、Open Liberty
Open Liberty 是一个轻量级、模块化的 Java EE (Jakarta EE) 应用服务器。
1、配置
Open Liberty 的主要配置文件是 server.xml,位于服务器实例目录下的 etc 文件夹中。
server.xml: 这是 Open Liberty 的核心配置文件,包含了服务器的所有配置信息,例如启用的特性 (features)、应用程序部署、端口号、数据源、日志配置等。- 启用特性 (Features): 通过
<featureManager>元素启用所需的功能,例如javaee-8.0、servlet-4.0、jaxrs-2.1等。<server><featureManager><feature>javaee-8.0</feature></featureManager></server> - 配置 HTTP 端口: 通过
<httpEndpoint>元素配置 HTTP 端口。<httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="9080" httpsPort="9443"/> - 部署应用程序: 可以通过
<application>元素部署 WAR 或 EAR 文件。<application location="my-app.war" type="war"/> - 配置日志: 通过
<logging>元素配置日志级别、输出格式等。<logging traceSpecification="*=info:com.example.*=debug"/> - 配置数据源: 通过
<dataSource>元素配置 JDBC 数据源。
- 启用特性 (Features): 通过
配置示例 (修改 HTTP 端口):
- 打开 Open Liberty 服务器实例目录下的
etc/server.xml文件。 - 找到
<httpEndpoint id="defaultHttpEndpoint" ...>这一行。 - 修改
httpPort属性的值为你想要的端口号,例如9090。 - 保存文件并重启 Open Liberty 服务器。
2、调试
Open Liberty 也支持远程调试。
- 启用远程调试:
- 找到 Open Liberty 服务器实例目录下的
bin文件夹。 - 编辑
server.env文件(如果不存在则创建)。 - 添加以下 JVM 参数:
JVM_ARGS="-Xdebug -Xrunjdwp:transport=dt_socket,address=7777,server=y,suspend=n"address=7777: 调试器连接的端口号,可以自定义。
- 找到 Open Liberty 服务器实例目录下的
- 启动 Open Liberty 服务器: 运行
server start <your_server_name>命令启动服务器。 - 连接调试器:
- 在你的 IDE 中创建一个远程调试配置。
- 配置连接的主机为 Open Liberty 运行的服务器 IP 地址或
localhost。 - 配置端口号为你在
server.env中设置的端口号(例如7777)。 - 启动调试器。
- 设置断点: 在你的 Java 代码中设置断点。
- 触发请求: 访问你的 Web 应用,当代码执行到断点时,调试器会暂停,你可以检查变量、单步执行等。
3、跟踪
Open Liberty 提供了灵活的日志和跟踪配置。
- 配置日志级别: 在
server.xml文件中使用<logging>元素配置日志级别。traceSpecification: 用于指定不同组件或包的跟踪级别。例如:*=info: 设置所有组件的默认日志级别为 INFO。com.example.*=debug: 设置com.example包及其子包的日志级别为 DEBUG。com.ibm.ws.webcontainer*=all: 设置 Web 容器相关组件的日志级别为 ALL (最详细)。
consoleLogLevel: 配置控制台输出的日志级别。messageFileName: 配置消息日志文件的名称。maxFileSize: 配置消息日志文件的最大大小。maxFiles: 配置保留的消息日志文件的最大数量。
- 配置日志格式: 可以通过
<logging>元素的属性或子元素配置日志格式。 - 使用 Liberty 跟踪: Liberty 具有内置的跟踪功能,可以提供更详细的运行时信息。通过
traceSpecification可以控制跟踪的详细程度。 - 访问日志: Open Liberty 默认会生成访问日志,记录 HTTP 请求的信息。可以通过
<httpEndpoint>元素的属性进行配置。 - 使用外部日志框架: 可以在你的应用程序中使用 SLF4j、Logback 或 Log4j2 等日志框架,并在 Open Liberty 中进行配置。
三、WebSphere Application Server (WAS)
WebSphere Application Server (WAS) 是 IBM 的商业级 Java EE (Jakarta EE) 应用服务器,功能强大且复杂。
1、配置
WAS 的配置主要通过管理控制台 (Admin Console) 和 XML 配置文件进行。
- 管理控制台: 这是一个基于 Web 的界面,用于管理 WAS 的各种配置,例如服务器、应用程序、数据源、安全设置、日志配置等。通常通过
http://<your_server_ip>:<admin_console_port>/ibm/console访问(默认端口通常是 9060 或 9043)。 - XML 配置文件: WAS 的配置信息存储在 XML 文件中,主要位于 WAS 安装目录下的
profiles/<profile_name>/config目录下。重要的配置文件包括:server.xml: 定义了服务器的基本配置,例如端口、应用程序部署、Web 容器设置等。virtualhosts.xml: 配置虚拟主机。resources.xml: 配置资源,例如数据源、JMS 连接工厂等。security.xml: 配置安全相关的设置。variables.xml: 定义环境变量。
配置示例 (通过管理控制台修改 HTTP 端口):
- 登录 WAS 管理控制台。
- 导航到 服务器 -> 服务器类型 -> WebSphere 应用程序服务器。
- 选择你要配置的服务器。
- 在右侧窗格中,导航到 端口。
- 找到
WC_defaulthost对应的端口号,修改为你想要的端口号。 - 点击 应用,然后 保存 配置。
- 重启服务器以使更改生效。
2、调试
WAS 支持远程调试。
- 启用远程调试:
- 登录 WAS 管理控制台。
- 导航到 服务器 -> 服务器类型 -> WebSphere 应用程序服务器。
- 选择你要配置的服务器。
- 在右侧窗格中,导航到 Java 和进程管理 -> 进程定义。
- 选择 控制 或 服务器 (取决于你要调试的进程)。
- 导航到 其他属性 -> JVM (Java 虚拟机)。
- 在 通用 JVM 参数 字段中添加以下参数:
-Xdebug -Xrunjdwp:transport=dt_socket,address=7777,server=y,suspend=naddress=7777: 调试器连接的端口号,可以自定义。
- 点击 应用,然后 保存 配置。
- 重启服务器。
- 连接调试器:
- 在你的 IDE 中创建一个远程调试配置。
- 配置连接的主机为 WAS 运行的服务器 IP 地址或
localhost。 - 配置端口号为你在 JVM 参数中设置的端口号(例如
7777)。 - 启动调试器。
- 设置断点: 在你的 Java 代码中设置断点。
- 触发请求: 访问你的 Web 应用,当代码执行到断点时,调试器会暂停,你可以检查变量、单步执行等。
3、跟踪
WAS 提供了非常强大的跟踪和日志功能。
- 配置日志级别:
- 登录 WAS 管理控制台。
- 导航到 故障排除 -> 日志和跟踪。
- 选择你要配置的服务器。
- 点击 更改日志级别详细信息。
- 可以选择预定义的日志级别(例如
信息、警告、错误)或者自定义跟踪规范。 - 自定义跟踪规范: 可以指定特定组件或包的跟踪级别。例如:
*=info: 设置所有组件的默认日志级别为 INFO。com.example.*=all: 设置com.example包及其子包的跟踪级别为 ALL (最详细)。com.ibm.ws.webcontainer*=fine:com.ibm.ws.session*=debug: 可以指定多个组件的不同级别。
- 点击 应用,然后 保存 配置。
- 配置日志文件:
- 在 日志和跟踪 页面,点击 服务器日志 或其他日志类型(例如 JVM 日志)。
- 可以配置日志文件的路径、最大大小、历史文件数等。
- 配置跟踪文件:
- 在 日志和跟踪 页面,点击 跟踪。
- 可以配置跟踪文件的路径、最大大小、历史文件数、格式等。
- 使用 PMI (Performance Monitoring Infrastructure): WAS 提供了 PMI,可以监控服务器的性能指标,例如 CPU 使用率、内存使用率、请求处理时间等。可以通过管理控制台或编程方式访问 PMI 数据。
- 使用 Health Center 和 Thread Analyzer: IBM 提供了 Health Center 和 Thread Analyzer 等工具,可以帮助分析 WAS 的性能问题和线程转储。
希望以上详细的讲解能够帮助你配置、调试和跟踪 Tomcat、Open Liberty 和 WebSphere Application Server。由于每个服务器都有其特定的复杂性,建议参考官方文档以获取更深入的信息。
相关文章:
Tomcat、Open Liberty 和 WebSphere Application Server (WAS) 的配置、调试和跟踪
一、Tomcat Tomcat 是一个轻量级的开源 Java Servlet 容器。 1、配置 Tomcat 的主要配置文件位于其安装目录下的 conf 文件夹中。 server.xml: 这是 Tomcat 的核心配置文件,包含了服务器的基本设置,例如端口号、连接器配置、虚拟主机配置、以及全局的…...
使用yolov8+flask实现精美登录界面+图片视频摄像头检测系统
这个是使用flask实现好看登录界面和友好的检测界面实现yolov8推理和展示,代码仅仅有2个html文件和一个python文件,真正做到了用最简洁的代码实现复杂功能。 测试通过环境: windows x64 anaconda3python3.8 ultralytics8.3.81 flask1.1.2…...
Go语言环境搭建(Day1) 常见问题及解决方案指南
Go语言环境搭建(Day1)整理的 常见问题及解决方案指南: Go环境搭建问题排查手册 一、安装阶段问题 问题现象原因分析解决方案安装包下载失败网络问题或官网访问慢使用国内镜像下载:- Go中文网提示"Access Denied"Window…...
微软OneNote无法同步解决方案
目录 前言原因UWP特性 解决方案C***h注册表 参考链接 前言 假设有多台Windows电脑,最方便且免费的多设备笔记同步方案就是微软自家的OneNote,使用OneDrive自带的5G云存储。 但是在国内大陆的OneNote,经常会出现无法同步、同步失败࿱…...
Log4j2漏洞实战
1,打开环境后访问该ip 2,打开dnslog.cn,获取一个域名,我们这里是2bfvl6.dnslog.cn 3,访问http://47.122.51.245:8983/solr/admin/coresaction${jndi:ldap://${sys:java.version}.2bfvl6.dnslog.cn} 4,返回d…...
【蓝桥杯速成】| 6.背包问题(01版)
01 背包 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。 接下来让我们从题目入手,看看这个背包到底是怎么个事 题目ÿ…...
【含文档+PPT+源码】基于小程序的智能停车管理系统设计与开发
项目介绍 本课程演示的是一款基于小程序的智能停车管理系统设计与开发,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 3…...
idea 编译打包nacos2.0.3源码,生成可执行jar 包常见问题
目录 问题1 问题2 问题3 问题4 简单记录一下nacos2.0.3,编译打包的步骤,首先下载源码,免积分下载: nacos源码: https://download.csdn.net/download/fyihdg/90461118 protoc 安装包 https://download.csdn.net…...
YOLOv8 OBB 旋转目标检测模型详解与实践
引言 在计算机视觉领域,目标检测是至关重要的任务之一。YOLO(You Only Look Once)系列算法因其高效性和准确性而广受欢迎。YOLOv8 作为稳定版本,在目标检测领域取得了显著成果,依旧能打。本文将深入探讨 YOLOv8 OBB&a…...
机器学习之支持向量机(SVM)算法详解
文章目录 引言一、 什么是支持向量机(SVM)二、 SVM的基本原理三、数学推导1.线性可分情况2. 非线性可分情况3. 核函数 四、SVM的优缺点优点:缺点: 五、 应用场景六、 Python实现示例七、 总结 引言 支持向量机(Suppor…...
Linux系统移植篇(十一)Linux 内核启动流程
要分析 Linux 启动流程,同样需要先编译一下 Linux 源码,因为有很多文件是需要编译才 会生成的。首先分析 Linux 内核的连接脚本文件 arch/arm/kernel/vmlinux.lds,通过链接脚本可以 找到 Linux 内核的第一行程序是从哪里执行的。vmlinux.lds …...
功能强大的电脑硬件检测及驱动安装工具
今天给大家带来一款超实用的电脑硬件检测软件——入梦工具箱。它是开源的,全程无广告干扰,使用起来清爽又安心。 打开入梦工具箱,进入“硬件信息”选项,电脑各个配件的详细参数一目了然。 无论是CPU的型号、频率,还是…...
springBoot中使用事务的隔离与回滚
在 Spring Boot 中,事务的隔离和回滚是保障数据一致性和完整性的重要机制。下面将详细介绍如何在 Spring Boot 里使用事务的隔离和回滚。 1. 环境准备 首先要确保 Spring Boot 项目中添加了 Spring Data JPA 或其他持久化框架的依赖,同时配置好数据库连…...
HHJS项目记录
1、插入 支出合同 与 进项发票的上下车关系 MERGE INTO T_BOT_Relation a USING (SELECT invoice.fid AS invoiceID, contract.fid AS contractid FROM T_CON_Invoice invoice INNER JOIN T_CON_Contract AS contract ON contract.FNUMBER invoice.FContractNo ) t ON (a.FDe…...
【Altium Designer】设计技巧
目录 技巧一:铺铜连接方式 技巧二:铺铜连接方式 技巧一:铺铜连接方式 Design -> Rules -> PolygonConnect 三种选择: 1)Relief Connect:十字连接,可选择是45还是90 2)Direct…...
基于FPGA的3U机箱模拟量高速采样板ADI板卡,应用于轨道交通/电力储能等
板卡简介: 本板为模拟量高速采样板(ADI),主要用于电机转速和相电流检测,以实现电机闭环控制。 性能规格: 电源:DC5V,DC3.3V,DC15V,DC24V FPGA:…...
6. 顺序表和链表*****
目录 1. 顺序表 1.1 原理 1.2 常见的增删查改 1.3 顺序表的问题 2. 链表 2.1 原理 2.2 无头单向非循环的增删查改 2.3 链表面试题 1. 删除链表中等于给定值val的所有节点203. 移除链表元素 2. 链表逆置206. 反转链表(考的最多) 3.给你单链表的…...
Vue3 + TS组件封装指南
在 Vue 3 TypeScript 中封装组件时,需要注意以下几点: 1. Props 定义 使用 defineProps 或 PropType 定义组件的 props,并为其添加类型。 示例: import { defineComponent, PropType } from vue;export default defineComponen…...
【AVRCP】蓝牙协议栈深度解析:AVCTP互操作性核心机制与实现细节
目录 一、事务标签(Transaction Label)机制 1.1 事务标签核心规则 1.2 事务标签作用域与并发性 1.3 实现建议与陷阱规避 1.4 协议设计思考 1.5 调试与验证 二、消息分片(Fragmentation)机制 2.1 分片触发条件 2.2 分片支…...
【MySQL】基本查询(下)
文章目录 1.筛选分页结果2.Update3.Delete4.截断表5.插入查询结果6.聚合函数6.1什么是聚合函数6.2常见的聚合函数 7.group by7.1如何显示每个部门的平均工资和最高工资7.2显示每个部门的每种岗位的平均工资和最低工资7.3显示平均工资低于2000的部门和它的平均工资 8.总结 1.筛选…...
Xpath Helper 替代 - XPath 测试器
Xpath Helper 最近开始(2025.03)无法使用了,选找了几款替代品,XPath 测试器 是目前看来最好的。 XPath 测试器 市场地址: https://chromewebstore.google.com/detail/xpath-测试器/cneomjecgakdfoeehmmmoiklncdiodmh …...
C++学习之云盘项目nginx
1.复习 2.知识点概述 1. 一些基本概念 1.1 Nginx 初步认识 1.2 正向 / 反向代理 1.3 域名和 IP 2. Nginx 安装和配置 2.1 安装 2.2 配置 3. Nginx 的使用 3.1 部署静态网页 3.2 反向代理和负载均衡 课外知识导读 1. URL 和 URI 2. DNS 解析过程 1. 一些基…...
JAVA学习*抽象类
抽象类 在Java中,被abstract关键字修饰的类被称为抽象类。 特点 1、当一个类继承了抽象类,一定要重写抽象方法!!! public abstract class Animal {public int age;public String name;//抽象方法public abstract v…...
数据库管理-第303期 数据库相关硬件文章汇总(20250319)
数据库管理303期 2025-03-19 数据库管理-第303期 数据库相关硬件文章汇总(20250319)1 CPU & 内存2 SSD3 RDMA4 存储5 CXL6 硬件采购7 数据库一体机总结 数据库管理-第303期 数据库相关硬件文章汇总(20250319) 作者࿱…...
WPF 开发从入门到进阶(五)
一、WPF 简介与开发环境搭建 1.1 WPF 概述 Windows Presentation Foundation(WPF)是微软推出的用于构建 Windows 桌面应用程序的强大 UI 框架。它融合了矢量图形、动画、多媒体等多种技术,能让开发者创建出具有高度视觉吸引力和交互性的应用…...
高级java每日一道面试题-2025年3月04日-微服务篇[Eureka篇]-Eureka是什么?
如果有遗漏,评论区告诉我进行补充 面试官: Eureka是什么? 我回答: 在Java高级面试中,关于Eureka的讨论通常会涵盖其基本概念、组件与架构、工作原理、高级特性以及与其他服务发现工具的比较等多个方面。以下是结合提供的内容对Eureka进行的详细解析和…...
OctoTools:一个具有复杂推理可扩展工具的智体框架
25年2月来自斯坦福大学的论文“OctoTools: An Agentic Framework with Extensible Tools for Complex Reasoning”。 解决复杂的推理任务可能涉及视觉理解、域知识检索、数值计算和多步骤推理。现有方法使用外部工具增强大语言模型 (LLM),但仅限于专业领域、有限的…...
uniapp-x web 开发警告提示以及解决方法
defineModel props...
html5表格实战-跨行跨列
效果如图 代码如图...
前端开发概论
HTML,CSS,JS三者关系 html是骨架,决定呈现什么内容,而css定义样式,是华丽的外衣,javascript是操作逻辑,实现按钮等等,是人的灵魂 HTML文件存储着一个网页的骨架,CSS则是外衣,javas…...
