参考资料

  1. Known 是一个开源的内容发布平台
  2. PyPy 是一个 Python 解释器的替代实现,使用 RPython(受限 Python)编写
  3. Cloudreve是一款自托管的网盘系统,支持对接OnlyOffice实现在线文档编辑功能
  4. MySQL多版本管理允许在同一环境中安装和运行多个MySQL版本
  5. Haxe 是一种开源的跨平台编程语言
  6. MySQL 是一个开源的关系型数据库管理系统
  7. OpenJDK(Open Java Development Kit)是 Java 平台的开源实现
  8. Docker用于打包、分发和运行应用

GlassFish简介

GlassFish是一个开源的Java EE应用服务器,由Eclipse基金会维护。最初由Sun Microsystems开发,后捐赠给Eclipse基金会。支持Java EE/Jakarta EE规范,适用于企业级应用部署。

特点

  1. 开源免费:遵循CDDL和GPL开源协议。

  2. 模块化架构:基于OSGi框架,支持动态扩展。

  3. 高性能:支持Grizzly NIO框架,优化高并发场景。

  4. 管理便捷:提供Web控制台和命令行工具(asadmin)。

  5. 标准兼容:完整实现Jakarta EE(原Java EE)规范。

最新更新

  • 版本:GlassFish 7.0.0

  • 更新时间:2022年11月

  • 更新内容

    • 支持Jakarta EE 10核心规范

    • 升级嵌入式Grizzly版本

    • 修复安全漏洞(CVE-2022-xxxx)

下载地址

文档地址

Docker安装示例

# 拉取官方镜像
docker pull glassfish:7.0.0

# 运行容器(暴露8080和4848端口)
docker run -d -p 8080:8080 -p 4848:4848 --name glassfish glassfish:7.0.0

YAML配置示例(如docker-compose.yml)

version: '3'
services:
  glassfish:
    image: glassfish:7.0.0
    ports:
      - "8080:8080"
      - "4848:4848"
    volumes:
      - ./deploy:/glassfish/domains/domain1/autodeploy

常见错误及解决

  1. 端口冲突

    • 错误:Address already in use

    • 解决:修改domain.xml中的HTTP/Admin端口。

  2. 内存不足

    • 错误:java.lang.OutOfMemoryError

    • 解决:调整JVM参数:asadmin create-jvm-options "-Xmx2048m"

  3. 部署失败

    • 错误:Deployment failed

    • 解决:检查应用兼容性(如Jakarta EE版本),查看server.log

  4. 管理控制台无法访问

    • 确保已启动domain-admin-service:  

      asadmin enable-secure-admin
  5. JDBC连接池问题

    • 错误:Ping failed

    • 解决:验证数据库URL/凭证,或重启连接池:  

      asadmin restart-connector-connection-pool [pool-name]