当前位置: 首页 > news >正文

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 的日志行为,例如日志级别、输出格式、输出目标等。

配置示例 (修改端口号):

  1. 打开 Tomcat 安装目录下的 conf/server.xml 文件。
  2. 找到 <Connector port="8080" ...> 这一行。
  3. port 属性的值修改为你想要的端口号,例如 8090
  4. 保存文件并重启 Tomcat。

2、调试

Tomcat 支持远程调试,可以通过 Java 调试器(例如 IntelliJ IDEA 或 Eclipse)连接到 Tomcat 进程进行调试。

  1. 启用远程调试:
    • 找到 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 会等待调试器连接后才启动。
  2. 启动 Tomcat: 运行 catalina.sh startcatalina.bat start 命令启动 Tomcat。
  3. 连接调试器:
    • 在你的 IDE 中创建一个远程调试配置。
    • 配置连接的主机为 Tomcat 运行的服务器 IP 地址或 localhost
    • 配置端口号为你在 CATALINA_OPTSset CATALINA_OPTS 中设置的端口号(例如 8000)。
    • 启动调试器。
  4. 设置断点: 在你的 Java 代码中设置断点。
  5. 触发请求: 访问你的 Web 应用,当代码执行到断点时,调试器会暂停,你可以检查变量、单步执行等。

3、跟踪

Tomcat 使用 Java Util Logging (JUL) 进行日志记录。

  1. 配置日志级别: 在 conf/logging.properties 文件中可以配置不同包或类的日志级别。例如,要将 org.apache.catalina 包的日志级别设置为 FINE: Properties
    org.apache.catalina.level = FINE
    
    常见的日志级别包括:SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL.
  2. 配置日志输出: 可以配置日志的输出格式、输出目标(例如控制台、文件)。默认情况下,Tomcat 会将日志输出到 logs 文件夹下的文件中,例如 catalina.outlocalhost.log 等。
  3. 使用 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 &quot;%r&quot; %s %b" resolveHosts="false"/>
      
      • directory: 日志文件存放目录。
      • prefix: 日志文件名前缀。
      • suffix: 日志文件名后缀。
      • pattern: 日志格式。常用的格式包括:
        • %h: 远程主机名。
        • %l: 远程逻辑用户名 (总是 -)。
        • %u: 远程用户。
        • %t: 日期和时间。
        • %r: 请求的第一行。
        • %s: 响应状态码。
        • %b: 发送的字节数。
        • %D: 处理请求所花费的时间 (毫秒)。
  4. 自定义日志: 你可以在你的 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.0servlet-4.0jaxrs-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 数据源。

配置示例 (修改 HTTP 端口):

  1. 打开 Open Liberty 服务器实例目录下的 etc/server.xml 文件。
  2. 找到 <httpEndpoint id="defaultHttpEndpoint" ...> 这一行。
  3. 修改 httpPort 属性的值为你想要的端口号,例如 9090
  4. 保存文件并重启 Open Liberty 服务器。

2、调试

Open Liberty 也支持远程调试。

  1. 启用远程调试:
    • 找到 Open Liberty 服务器实例目录下的 bin 文件夹。
    • 编辑 server.env 文件(如果不存在则创建)。
    • 添加以下 JVM 参数:
      JVM_ARGS="-Xdebug -Xrunjdwp:transport=dt_socket,address=7777,server=y,suspend=n"
      
      • address=7777: 调试器连接的端口号,可以自定义。
  2. 启动 Open Liberty 服务器: 运行 server start <your_server_name> 命令启动服务器。
  3. 连接调试器:
    • 在你的 IDE 中创建一个远程调试配置。
    • 配置连接的主机为 Open Liberty 运行的服务器 IP 地址或 localhost
    • 配置端口号为你在 server.env 中设置的端口号(例如 7777)。
    • 启动调试器。
  4. 设置断点: 在你的 Java 代码中设置断点。  
  5. 触发请求: 访问你的 Web 应用,当代码执行到断点时,调试器会暂停,你可以检查变量、单步执行等。

3、跟踪

Open Liberty 提供了灵活的日志和跟踪配置。

  1. 配置日志级别: 在 server.xml 文件中使用 <logging> 元素配置日志级别。
    • traceSpecification: 用于指定不同组件或包的跟踪级别。例如:
      • *=info: 设置所有组件的默认日志级别为 INFO。
      • com.example.*=debug: 设置 com.example 包及其子包的日志级别为 DEBUG。
      • com.ibm.ws.webcontainer*=all: 设置 Web 容器相关组件的日志级别为 ALL (最详细)。
    • consoleLogLevel: 配置控制台输出的日志级别。
    • messageFileName: 配置消息日志文件的名称。
    • maxFileSize: 配置消息日志文件的最大大小。
    • maxFiles: 配置保留的消息日志文件的最大数量。
  2. 配置日志格式: 可以通过 <logging> 元素的属性或子元素配置日志格式。
  3. 使用 Liberty 跟踪: Liberty 具有内置的跟踪功能,可以提供更详细的运行时信息。通过 traceSpecification 可以控制跟踪的详细程度。
  4. 访问日志: Open Liberty 默认会生成访问日志,记录 HTTP 请求的信息。可以通过 <httpEndpoint> 元素的属性进行配置。
  5. 使用外部日志框架: 可以在你的应用程序中使用 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 端口):

  1. 登录 WAS 管理控制台。
  2. 导航到 服务器 -> 服务器类型 -> WebSphere 应用程序服务器
  3. 选择你要配置的服务器。
  4. 在右侧窗格中,导航到 端口
  5. 找到 WC_defaulthost 对应的端口号,修改为你想要的端口号。
  6. 点击 应用,然后 保存 配置。
  7. 重启服务器以使更改生效。

2、调试

WAS 支持远程调试。

  1. 启用远程调试:
    • 登录 WAS 管理控制台。
    • 导航到 服务器 -> 服务器类型 -> WebSphere 应用程序服务器
    • 选择你要配置的服务器。
    • 在右侧窗格中,导航到 Java 和进程管理 -> 进程定义
    • 选择 控制服务器 (取决于你要调试的进程)。
    • 导航到 其他属性 -> JVM (Java 虚拟机)
    • 通用 JVM 参数 字段中添加以下参数:
      -Xdebug -Xrunjdwp:transport=dt_socket,address=7777,server=y,suspend=n
      
      • address=7777: 调试器连接的端口号,可以自定义。
    • 点击 应用,然后 保存 配置。
    • 重启服务器。
  2. 连接调试器:
    • 在你的 IDE 中创建一个远程调试配置。
    • 配置连接的主机为 WAS 运行的服务器 IP 地址或 localhost
    • 配置端口号为你在 JVM 参数中设置的端口号(例如 7777)。
    • 启动调试器。
  3. 设置断点: 在你的 Java 代码中设置断点。
  4. 触发请求: 访问你的 Web 应用,当代码执行到断点时,调试器会暂停,你可以检查变量、单步执行等。

3、跟踪

WAS 提供了非常强大的跟踪和日志功能。

 

  1. 配置日志级别:
    • 登录 WAS 管理控制台。
    • 导航到 故障排除 -> 日志和跟踪
    • 选择你要配置的服务器。
    • 点击 更改日志级别详细信息
    • 可以选择预定义的日志级别(例如 信息警告错误)或者自定义跟踪规范。
    • 自定义跟踪规范: 可以指定特定组件或包的跟踪级别。例如:
      • *=info: 设置所有组件的默认日志级别为 INFO。
      • com.example.*=all: 设置 com.example 包及其子包的跟踪级别为 ALL (最详细)。
      • com.ibm.ws.webcontainer*=fine:com.ibm.ws.session*=debug: 可以指定多个组件的不同级别。
    • 点击 应用,然后 保存 配置。
  2. 配置日志文件:
    • 日志和跟踪 页面,点击 服务器日志 或其他日志类型(例如 JVM 日志)。
    • 可以配置日志文件的路径、最大大小、历史文件数等。
  3. 配置跟踪文件:
    • 日志和跟踪 页面,点击 跟踪
    • 可以配置跟踪文件的路径、最大大小、历史文件数、格式等。
  4. 使用 PMI (Performance Monitoring Infrastructure): WAS 提供了 PMI,可以监控服务器的性能指标,例如 CPU 使用率、内存使用率、请求处理时间等。可以通过管理控制台或编程方式访问 PMI 数据。
  5. 使用 Health Center 和 Thread Analyzer: IBM 提供了 Health Center 和 Thread Analyzer 等工具,可以帮助分析 WAS 的性能问题和线程转储。

希望以上详细的讲解能够帮助你配置、调试和跟踪 Tomcat、Open Liberty 和 WebSphere Application Server。由于每个服务器都有其特定的复杂性,建议参考官方文档以获取更深入的信息。

相关文章:

  • 嵌入式开发之STM32学习笔记day07
  • PCIe(Peripheral Component Interconnect Express)详解
  • docker 命令里 --restart=unless-stopped 参数的作用
  • Android 13 Launcher3最近任务列表“全部清除“按钮位置优化实战
  • Spring(7)——MyBatis入门(1)
  • 7、vue3做了什么
  • Java 大视界 -- Java 大数据在智能家居设备联动与场景自动化中的应用(140)
  • 关系数据库设计理论
  • Android Fresco 框架兼容模块源码深度剖析(六)
  • 在鸿蒙Next中开发一个月历组件
  • AcWing 3533:查找第K小数 ← sort+unique
  • Linux并发程序设计(5):线程的相关操作
  • 高频SQL 50 题(持续更新)
  • Deepseek X 文心智能体:谐音梗广告创意大师
  • vue3 函数式弹窗
  • 文件管理系统
  • Spring Boot 配置属性 (Configuration Properties) 详解:优雅地管理应用配置
  • 创建多模块教程
  • ARMv8.x-M架构计算能力概览
  • react路由5和6新增及区别
  • 习近平:推进中国式现代化要继续把制造业搞好
  • 财政部:今年将和住建部选拔第二批20个城市,高质量推进城市更新行动
  • 最高法:依法惩治损害民营企业合法权益的串通投标行为
  • 4月份国民经济顶住压力稳定增长
  • 19国入境团抵沪并游玩,老外震惊:“怎么能有这么多人?”
  • 广东一驴友在英德野景点溺亡,家属被爆向21名同伴索赔86万