参考资料

  1. SWI-Prolog 是一个开源的 Prolog 实现,广泛用于人工智能、自然语言处理和知识表示等领域
  2. Couchbase 是一个高性能、分布式 NoSQL 数据库,支持键值存储、文档存储和全文搜索功能。
  3. Nextcloud 是一款开源的自托管文件同步与共享平台
  4. PyPy 是一个 Python 解释器的替代实现,使用 RPython(受限 Python)编写
  5. Haskell是一种纯函数式编程语言
  6. 宝塔docker是一款基于Web的服务器管理软件
  7. Pony 是一个高性能、并发安全的编程语言,专为构建高并发系统设计
  8. Rakudo Star是Raku编程语言的发行版

Tomcat 详细简介

Apache Tomcat 是一个开源的 Java Servlet 容器和 Web 服务器,由 Apache 软件基金会开发。它实现了 Java Servlet、JavaServer Pages (JSP)、Java Expression Language 和 Java WebSocket 技术规范,是运行 Java Web 应用程序的流行选择。

Tomcat 特点

  1. 轻量级:相比完整的 Java EE 应用服务器,Tomcat 更轻量。

  2. 开源免费:遵循 Apache License 2.0 开源协议。

  3. 跨平台:支持 Windows、Linux、macOS 等操作系统。

  4. 模块化设计:支持通过配置文件灵活扩展功能。

  5. 高性能:优化的连接器(如 NIO、APR)支持高并发。

  6. 易于集成:可与 Apache HTTP Server、Nginx 等前端服务器集成。

最新更新内容及时间

  • 最新稳定版本:Tomcat 10.1.x(截至 2023 年 10 月)

  • 关键更新

    • 支持 Java 17 及更高版本。

    • 改进的 HTTP/2 支持。

    • 安全性增强和漏洞修复。

  • 发布时间:各版本发布时间可在 Apache Tomcat 官网 查看。

镜像下载地址

官网地址

https://tomcat.apache.org/

阅读的文档地址

Docker 安装示例

# 拉取官方 Tomcat 镜像
docker pull tomcat:10.1

# 运行 Tomcat 容器
docker run -d --name mytomcat -p 8080:8080 tomcat:10.1

# 挂载本地目录(可选)
docker run -d --name mytomcat -p 8080:8080 -v /path/to/webapps:/usr/local/tomcat/webapps tomcat:10.1

YAML 设置教程(以 Docker Compose 为例)

version: '3'
services:
  tomcat:
    image: tomcat:10.1
    ports:
      - "8080:8080"
    volumes:
      - ./webapps:/usr/local/tomcat/webapps
    environment:
      - JAVA_OPTS=-Xmx512m
    restart: always

常用错误问题

  1. 端口冲突

    • 错误:Address already in use

    • 解决:更改 server.xml 中的端口号或停止占用端口的进程。

  2. 内存不足

    • 错误:java.lang.OutOfMemoryError

    • 解决:调整 catalina.shsetenv.sh 中的 JAVA_OPTS(如 -Xmx1024m)。

  3. 权限问题

    • 错误:Permission denied

    • 解决:确保 Tomcat 用户对日志、工作目录有写入权限。

  4. 应用部署失败

    • 错误:Deploying web application directory failed

    • 解决:检查 webapps 目录下的应用是否完整,或查看 catalina.out 日志。

  5. HTTP 404 错误

    • 错误:访问应用返回 404

    • 解决:确认应用已正确部署到 webapps 目录,且上下文路径(Context Path)正确。

  6. SSL 配置错误

    • 错误:SSL handshake failed

    • 解决:检查 server.xmlConnectorkeystoreFilekeystorePass 配置。