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。由于每个服务器都有其特定的复杂性,建议参考官方文档以获取更深入的信息。

相关推荐
用户86178277365182 分钟前
责任链
java·后端·设计模式
电商数据girl4 分钟前
淘宝/天猫获得淘宝商品评论 API 返回值说明
java·大数据·开发语言·数据库·人工智能·spring
azhou的代码园13 分钟前
咖啡点单小程序毕业设计(JAVA+SpringBoot+微信小程序+完整源码+论文)
java·小程序·课程设计
述雾学java16 分钟前
反射(第三篇)、代理模式、静态代理和动态代理、InvocationHandler实际应用
java·代理模式·java核心基础
32码奴27 分钟前
C++与C的基本不同
java·c语言·c++
菲兹园长41 分钟前
Spring IOC(五个类注解)
java·python·spring
深耕半夜1 小时前
关于 2>/dev/null 的作用以及机理
java·开发语言
Dong雨1 小时前
Spring Boot 事务详解
java·spring boot·后端
小吕学编程1 小时前
破局 MySQL 死锁:深入理解锁机制与高效解决方案
java·数据库·sql·mysql
Java版蜡笔小新1 小时前
数字与静态
java·开发语言·学习