参考资料

  1. 青龙面板(QingLong)是一款开源的、基于Web的定时任务管理平台
  2. docker安装nginx详细说明以及案例
  3. rspamd 是一个快速、开源的垃圾邮件过滤系统
  4. docker添加官方镜像源详细说明以及案例
  5. Nextcloud 是一款开源的自托管文件同步与共享平台
  6. Matomo(原名 Piwik)是一个开源的网站分析平台
  7. Logstash 是 Elastic 公司开发的开源数据收集和处理引擎
  8. ERPNext 14 是一款开源的企业资源规划(ERP)系统

Jetty 简介

Jetty 是一个轻量级的开源 Java Web 服务器和 Servlet 容器,由 Eclipse 基金会维护。它被广泛用于嵌入式系统和生产环境中,具有高性能、模块化和易扩展的特点。

特点

  • 轻量级:核心 jar 文件小,适合嵌入式应用。

  • 高性能:基于 NIO(非阻塞 I/O)设计,处理高并发请求高效。

  • 模块化:支持按需加载组件,减少资源占用。

  • 嵌入式支持:可直接集成到应用程序中。

  • 支持最新标准:兼容 Servlet、WebSocket、HTTP/2 等协议。

最新更新内容及时间

  • 最新版本:Jetty 11.0.20(截至 2024 年 7 月)

  • 更新内容

    • 修复了多个安全漏洞。

    • 改进了 HTTP/2 和 WebSocket 的性能。

    • 增强了对 JDK 17 的支持。

镜像下载地址

  • 官方镜像下载https://www.eclipse.org/jetty/download.html

  • Maven 依赖

    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-server</artifactId>
      <version>11.0.20</version>
    </dependency>

官网地址

文档地址

Docker 安装示例

# 拉取官方镜像
docker pull jetty:latest

# 运行容器
docker run -d -p 8080:8080 --name myjetty jetty

YAML 设置教程(以 jetty.yml 为例)

server:
  port: 8080
  contextPath: "/myapp"
  connectors:
    - type: http
      port: 8080
  resources:
    - type: webapp
      resourceBase: "/var/lib/jetty/webapps"

常用错误及问题

  1. 端口冲突

    • 错误信息:java.net.BindException: Address already in use

    • 解决方法:更换端口或关闭占用端口的程序。

  2. 类加载问题

    • 错误信息:ClassNotFoundExceptionNoClassDefFoundError

    • 解决方法:检查依赖是否完整,确保类路径正确。

  3. 内存不足

    • 错误信息:java.lang.OutOfMemoryError

    • 解决方法:调整 JVM 内存参数(如 -Xmx512m)。

  4. Servlet 未注册

    • 错误信息:404 Not Found

    • 解决方法:检查 web.xml 或注解配置是否正确。

  5. HTTPS 配置失败

    • 错误信息:SSLHandshakeException

    • 解决方法:确保证书路径和密钥库配置正确。