1. GlassFish应用服务器简介
GlassFish是Eclipse基金会开源的Java EE应用服务器,是Java EE参考实现。GlassFish以其完整的Java EE支持、易用性和丰富的管理工具著称,广泛用于企业级Java应用开发和部署。更多学习教程www.fgedu.net.cn
GlassFish核心特点
Java EE参考实现:完整的Jakarta EE规范支持
管理控制台:提供功能丰富的Web管理界面
集群支持:支持负载均衡和高可用部署
OSGi支持:模块化架构,支持OSGi容器
开发工具集成:与NetBeans、Eclipse等IDE良好集成
2. GlassFish版本说明
GlassFish提供多个版本,用户可根据需求选择。学习交流加群风哥微信: itpux-com
最新版本信息
GlassFish 7.0.16:最新稳定版本,支持Jakarta EE 10
GlassFish 7.0.12:稳定版本
GlassFish 6.2.5:历史稳定版本,支持Jakarta EE 9
GlassFish 5.1.0:历史版本,支持Java EE 8
版本特性
7.x版本:支持Jakarta EE 10,最新特性
6.x版本:支持Jakarta EE 9,命名空间迁移
5.x版本:支持Java EE 8,稳定可靠
3. GlassFish下载地址
GlassFish可以从官方网站获取安装包。
官方下载地址
官方网站:https://glassfish.org/download
Eclipse下载:https://www.eclipse.org/downloads/download.php?file=/glassfish/glassfish-7.0.16.zip
文档中心:https://glassfish.org/documentation
下载安装包
# cd /fgeudb/software
# wget https://download.eclipse.org/ee4j/glassfish/glassfish-7.0.16.zip
# 输出示例如下:
–2026-04-04 10:00:00– https://download.eclipse.org/ee4j/glassfish/glassfish-7.0.16.zip
Resolving download.eclipse.org… 198.41.30.199
Connecting to download.eclipse.org|198.41.30.199|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 136314880 (130M) [application/zip]
Saving to: ‘glassfish-7.0.16.zip’
glassfish-7.0.16.zip 100%[===================>] 130.00M 20.5MB/s in 6.3s
2026-04-04 10:00:10 (20.5 MB/s) – ‘glassfish-7.0.16.zip’ saved
# 验证下载文件
# ls -lh glassfish-7.0.16.zip
-rw-r–r–. 1 root root 130M Apr 4 10:00 glassfish-7.0.16.zip
4. 环境准备
在安装GlassFish之前,需要准备必要的系统环境和Java运行时。
系统要求
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
# 检查系统架构
# uname -m
x86_64
# 检查内存和磁盘空间
# free -h
total used free shared buff/cache available
Mem: 31G 2.1G 28G 8.5M 1.0G 28G
Swap: 15G 0B 15G
# df -h /fgeudb
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 500G 20G 480G 4% /fgeudb
# 安装JDK 11或更高版本
# yum install -y java-11-openjdk java-11-openjdk-devel
# 验证Java版本
# java -version
# 输出示例如下:
openjdk version “11.0.20” 2023-07-18 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.20+9-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.20+9-LTS, mixed mode, sharing)
# 配置JAVA_HOME
# vi /etc/profile.d/java.sh
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PATH=$JAVA_HOME/bin:$PATH
# 使环境变量生效
# source /etc/profile.d/java.sh
# 创建GlassFish用户和组
# groupadd -g 5012 glassfish
# useradd -g glassfish -u 5012 -d /home/glassfish -s /bin/bash glassfish
# 创建安装目录
# mkdir -p /fgeudb/glassfish
# chown -R glassfish:glassfish /fgeudb/glassfish
5. ZIP包安装实战
使用ZIP包安装是最常见的方式,以下是详细步骤。学习交流加群风哥QQ113257174
步骤1:解压安装包
# yum install -y unzip
# 解压安装包
# cd /fgeudb/software
# unzip glassfish-7.0.16.zip -d /fgeudb/
# 输出示例如下:
Archive: glassfish-7.0.16.zip
creating: /fgeudb/glassfish7/
creating: /fgeudb/glassfish7/bin/
creating: /fgeudb/glassfish7/glassfish/
creating: /fgeudb/glassfish7/glassfish/bin/
creating: /fgeudb/glassfish7/glassfish/config/
creating: /fgeudb/glassfish7/glassfish/domains/
# 重命名目录
# mv /fgeudb/glassfish7 /fgeudb/glassfish
# 查看目录结构
# ls -la /fgeudb/glassfish/
total 16
drwxr-xr-x. 4 glassfish glassfish 4096 Apr 4 10:05 .
drwxr-xr-x. 3 root root 4096 Apr 4 10:00 ..
drwxr-xr-x. 2 glassfish glassfish 4096 Apr 4 10:05 bin
drwxr-xr-x. 8 glassfish glassfish 4096 Apr 4 10:05 glassfish
-rw-r–r–. 1 glassfish glassfish 5120 Apr 4 10:05 LICENSE.txt
-rw-r–r–. 1 glassfish glassfish 1024 Apr 4 10:05 README.txt
# 设置权限
# chown -R glassfish:glassfish /fgeudb/glassfish
步骤2:配置GlassFish
# vi /fgeudb/glassfish/glassfish/domains/domain1/config/domain.xml
# 修改网络监听器配置
# 修改JVM配置
# 保存配置文件
# 编辑asenv配置
# vi /fgeudb/glassfish/glassfish/config/asenv.conf
ASJAVA=/usr/lib/jvm/java-11-openjdk
ASROOT=/fgeudb/glassfish/glassfish
ASDOMAINS=/fgeudb/glassfish/glassfish/domains
# 保存配置文件
步骤3:启动GlassFish
# su – glassfish
# 启动GlassFish服务
$ cd /fgeudb/glassfish
$ ./bin/asadmin start-domain domain1
# 输出示例如下:
Waiting for domain1 to start ……
Successfully started the domain : domain1
domain Location: /fgeudb/glassfish/glassfish/domains/domain1
Log File: /fgeudb/glassfish/glassfish/domains/domain1/logs/server.log
Admin Port: 4848
Debugging is enabled. The debugging port is: 9009
# 检查进程
$ ps -ef | grep glassfish
glassfish 12345 1 5 10:10 pts/0 00:00:10 /usr/lib/jvm/java-11-openjdk/bin/java -Xms2g -Xmx4g …
# 检查端口
$ netstat -tlnp | grep java
tcp 0 0 0.0.0.0:4848 0.0.0.0:* LISTEN 12345/java
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 12345/java
tcp 0 0 0.0.0.0:8181 0.0.0.0:* LISTEN 12345/java
步骤4:配置systemd服务
# vi /etc/systemd/system/glassfish.service
[Unit]
Description=GlassFish Application Server
After=network.target
[Service]
Type=forking
User=glassfish
Group=glassfish
Environment=”JAVA_HOME=/usr/lib/jvm/java-11-openjdk”
Environment=”AS_HOME=/fgeudb/glassfish”
ExecStart=/fgeudb/glassfish/bin/asadmin start-domain domain1
ExecStop=/fgeudb/glassfish/bin/asadmin stop-domain domain1
PIDFile=/fgeudb/glassfish/glassfish/domains/domain1/config/pid
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
# 重新加载systemd
# systemctl daemon-reload
# 启动GlassFish服务
# systemctl start glassfish
# 设置开机自启
# systemctl enable glassfish
# 输出示例如下:
Created symlink from /etc/systemd/system/multi-user.target.wants/glassfish.service to /etc/systemd/system/glassfish.service.
# 检查服务状态
# systemctl status glassfish
● glassfish.service – GlassFish Application Server
Loaded: loaded (/etc/systemd/system/glassfish.service; enabled)
Active: active (running) since Fri 2026-04-04 10:15:00 CST; 10s ago
Process: 12340 ExecStart=/fgeudb/glassfish/bin/asadmin start-domain domain1 (code=exited, status=0/SUCCESS)
Main PID: 12345 (java)
CGroup: /system.slice/glassfish.service
└─12345 /usr/lib/jvm/java-11-openjdk/bin/java …
6. Docker容器安装实战
使用Docker容器安装GlassFish是最快捷的方式,适合快速测试和开发环境。更多学习教程公众号风哥教程itpux_com
步骤1:拉取GlassFish镜像
# docker pull eclipse-temurin/glassfish:7.0.16-jdk11
# 输出示例如下:
7.0.16-jdk11: Pulling from eclipse-temurin/glassfish
f1f26f570256: Pull complete
8f8e43ef9c3a: Pull complete
e9d8dca5b8a5: Pull complete
a1b8d4c4a5e6: Pull complete
Digest: sha256:abc123def456…
Status: Downloaded newer image for eclipse-temurin/glassfish:7.0.16-jdk11
docker.io/eclipse-temurin/glassfish:7.0.16-jdk11
# 查看镜像
# docker images | grep glassfish
eclipse-temurin/glassfish 7.0.16-jdk11 abc123def456 2 weeks ago 600MB
步骤2:运行GlassFish容器
# mkdir -p /fgeudb/glassfish/{domains,applications}
# 运行GlassFish容器
# docker run -d \
–name glassfish \
-p 4848:4848 \
-p 8080:8080 \
-p 8181:8181 \
-v /fgeudb/glassfish/domains:/glassfish7/glassfish/domains \
-v /fgeudb/glassfish/applications:/glassfish7/glassfish/domains/domain1/applications \
-e JVM_ARGS=”-Xms2g -Xmx4g” \
eclipse-temurin/glassfish:7.0.16-jdk11
# 输出示例如下:
abc123def456789…
# 检查容器状态
# docker ps | grep glassfish
abc123def456 eclipse-temurin/glassfish:7.0.16-jdk11 “/entrypoint.sh” 10 seconds ago Up 9 seconds 0.0.0.0:4848->4848/tcp, 0.0.0.0:8080->8080/tcp, 0.0.0.0:8181->8181/tcp glassfish
# 查看容器日志
# docker logs glassfish
# 输出示例如下:
Waiting for domain1 to start ……
Successfully started the domain : domain1
Admin Port: 4848
7. GlassFish配置优化
以下是生产环境的GlassFish配置优化建议。
JVM配置优化
# vi /fgeudb/glassfish/glassfish/domains/domain1/config/domain.xml
# JVM内存配置
# GC配置
# 性能配置
# 日志配置
# 保存配置文件
线程池配置
# vi /fgeudb/glassfish/glassfish/domains/domain1/config/domain.xml
# HTTP线程池配置
# 网络监听器配置
# 保存配置文件
数据源配置
$ /fgeudb/glassfish/bin/asadmin
# 输出示例如下:
Use “exit” to exit and “help” for online help.
asadmin>
# 创建JDBC连接池
asadmin> create-jdbc-connection-pool \
–datasourceclassname com.mysql.cj.jdbc.MysqlDataSource \
–restype javax.sql.DataSource \
–property user=appuser:password=YourPassword123!:url=jdbc\\:mysql\\://192.168.1.51\\:3306/appdb \
MySqlPool
# 输出示例如下:
JDBC connection pool MySqlPool created successfully.
Command create-jdbc-connection-pool executed successfully.
# 测试连接池
asadmin> ping-connection-pool MySqlPool
# 输出示例如下:
Command ping-connection-pool executed successfully.
# 创建JDBC资源
asadmin> create-jdbc-resource –connectionpoolid MySqlPool jdbc/MySqlDS
# 输出示例如下:
JDBC resource jdbc/MySqlDS created successfully.
Command create-jdbc-resource executed successfully.
# 退出
asadmin> exit
8. 安装验证与测试
安装完成后,需要进行验证测试确保GlassFish正常运行。
访问Web管理控制台
# URL: http://192.168.1.51:4848/
# GlassFish管理控制台功能:
# – 域管理
# – 应用部署
# – 资源配置(JDBC、JMS、JNDI)
# – 服务器配置
# – 监控和日志
# – 安全配置
# 默认管理员账户
# 用户名: admin
# 密码: 空(首次访问需要设置密码)
# 设置管理员密码
$ /fgeudb/glassfish/bin/asadmin change-admin-password
# 输出示例如下:
Enter admin user name [default: admin]> admin
Enter the admin password>
Enter the new admin password> YourPassword123!
Enter the new admin password again> YourPassword123!
Command change-admin-password executed successfully.
# 启用安全远程管理
$ /fgeudb/glassfish/bin/asadmin enable-secure-admin
# 输出示例如下:
Command enable-secure-admin executed successfully.
使用asadmin命令行工具
$ /fgeudb/glassfish/bin/asadmin
# 输出示例如下:
Use “exit” to exit and “help” for online help.
asadmin>
# 查看版本
asadmin> version
# 输出示例如下:
Version = GlassFish 7.0.16 (build 2025-03-04T07:52:00+0000)
Command version executed successfully.
# 查看服务器状态
asadmin> list-domains
# 输出示例如下:
domain1 running
Command list-domains executed successfully.
# 查看JVM信息
asadmin> get server.jvm.*
# 输出示例如下:
server.jvm.classpath = /fgeudb/glassfish/glassfish/modules/*
server.jvm.java-home = /usr/lib/jvm/java-11-openjdk
server.jvm.vendor = Eclipse Adoptium
server.jvm.version = 11.0.20
Command get executed successfully.
# 查看已部署的应用
asadmin> list-applications
# 输出示例如下:
Nothing to list.
Command list-applications executed successfully.
# 退出
asadmin> exit
部署测试应用
$ mkdir -p /fgeudb/glassfish/test-app/WEB-INF
# 创建web.xml
$ vi /fgeudb/glassfish/test-app/WEB-INF/web.xml
<?xml version=”1.0″ encoding=”UTF-8″?>
<web-app version=”5.0″ xmlns=”https://jakarta.ee/xml/ns/jakartaee”>
<display-name>Test Application</display-name>
</web-app>
# 创建测试JSP
$ vi /fgeudb/glassfish/test-app/index.jsp
<%@ page language=”java” contentType=”text/html; charset=UTF-8″%>
<!DOCTYPE html>
<html>
<head>
<title>GlassFish Test</title>
</head>
<body>
<h1>GlassFish 7.0.16 Test Page</h1>
<p>Server: <%= application.getServerInfo() %></p>
<p>Java Version: <%= System.getProperty(“java.version”) %></p>
</body>
</html>
# 打包WAR文件
$ cd /fgeudb/glassfish/test-app
$ jar -cvf ../test.war *
# 输出示例如下:
added manifest
adding: index.jsp(in = 285) (out= 202)(deflated 29%)
adding: WEB-INF/(in = 0) (out= 0)(stored 0%)
adding: WEB-INF/web.xml(in = 180) (out= 126)(deflated 30%)
# 部署应用
$ /fgeudb/glassfish/bin/asadmin deploy /fgeudb/glassfish/test.war
# 输出示例如下:
Application deployed with name test.
Command deploy executed successfully.
# 访问测试应用
# URL: http://192.168.1.51:8080/test/
# 输出示例如下:
GlassFish 7.0.16 Test Page
Server: GlassFish 7.0.16
Java Version: 11.0.20
REST API测试
$ curl -X GET “http://192.168.1.51:4848/management/domain/version” \
-u admin:YourPassword123! \
-H “Accept: application/json”
# 输出示例如下:
{
“version”: {
“version”: “GlassFish 7.0.16”,
“build”: “2025-03-04T07:52:00+0000”
}
}
# 查看应用列表
$ curl -X GET “http://192.168.1.51:4848/management/domain/applications” \
-u admin:YourPassword123! \
-H “Accept: application/json”
# 输出示例如下:
{
“applications”: {
“application”: [
{
“name”: “test”,
“enabled”: “true”,
“location”: “/fgeudb/glassfish/glassfish/domains/domain1/applications/test”
}
]
}
}
至此,GlassFish应用服务器的下载和安装已完成。后续可以根据实际业务需求部署应用、配置数据源和优化性能。
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
