You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

执行enable-secure-admin命令后Glassfish 5无法启动,求助排查

我之前在Ubuntu 16.04上部署GlassFish 5的时候也碰到过类似的问题,结合你的操作步骤和环境,大概率是这几个原因导致的,给你整理了对应的排查和解决方法:

可能的原因及解决方案

1. 安全管理员配置引发的证书/权限问题

执行enable-secure-admin后,GlassFish会自动生成SSL证书用于安全通信,但如果glassfish用户没有足够权限写入证书目录,或者证书生成过程中出了异常,就会直接导致启动失败。

  • 排查方式:去domain1的日志目录找报错信息,路径是glassfish5/glassfish/domains/domain1/logs/server.log,搜索SEVERE或者secure-admin关键词,很容易定位到权限相关的错误。
  • 解决步骤
    • 先确保glassfish用户对配置目录有完整的读写权限:
      sudo chown -R glassfish:glassfish /home/glassfish/glassfish5/glassfish/domains/domain1/config
      
    • 如果是证书生成异常,直接删除旧证书重新生成:
      cd /home/glassfish/glassfish5/bin
      ./asadmin stop-domain domain1
      rm -rf /home/glassfish/glassfish5/glassfish/domains/domain1/config/certs
      ./asadmin start-domain domain1
      ./asadmin enable-secure-admin
      

2. Java环境变量未正确配置

虽然你安装了Java 8,但GlassFish启用安全管理后对Java环境的依赖更严格,很可能是没有正确识别到Java路径导致启动失败。

  • 排查方式
    • 执行echo $JAVA_HOME,看输出是否是Java 8的正确安装路径(比如/usr/lib/jvm/java-8-openjdk-amd64);
    • 打开glassfish5/glassfish/config/asenv.conf文件,检查AS_JAVA参数是否和JAVA_HOME一致。
  • 解决步骤
    • 如果JAVA_HOME没设置,编辑~/.bashrc文件,添加以下内容:
      export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
      export PATH=$JAVA_HOME/bin:$PATH
      
    • 执行source ~/.bashrc让配置生效,然后重启GlassFish;
    • asenv.conf里的AS_JAVAJAVA_HOME不一致,修改后保存再启动。

3. 端口冲突或防火墙限制

启用安全管理后,GlassFish会默认使用HTTPS端口8181,如果这个端口被其他程序占用,或者Ubuntu的ufw防火墙阻止了该端口的访问,也会导致启动异常。

  • 排查方式
    • 检查8181端口是否被占用:
      sudo netstat -tulpn | grep 8181
      
    • 查看ufw防火墙状态,确认8181端口是否开放:
      sudo ufw status
      
  • 解决步骤
    • 如果端口被占用,要么停止占用该端口的程序,要么修改GlassFish的HTTPS端口:编辑glassfish5/glassfish/domains/domain1/config/domain.xml,找到<network-listener>port="8181"的行,改成其他未被占用的端口(比如8182);
    • 如果防火墙阻止了端口,执行以下命令开放:
      sudo ufw allow 8181/tcp
      sudo ufw reload
      

4. 安全管理员启用时的账户配置问题

有时候执行enable-secure-admin时没有指定正确的管理员账户,或者账户本身配置有误,也会导致启动失败。

  • 排查方式:查看server.log中是否有关于admin账户的报错,比如Invalid admin credentials这类信息。
  • 解决步骤:重新执行enable-secure-admin并指定正确的管理员账户(默认是admin):
    cd /home/glassfish/glassfish5/bin
    ./asadmin enable-secure-admin admin
    
    如果你修改过管理员账户名,替换成你自己设置的名称即可。

内容的提问来源于stack exchange,提问作者Vsevolod Dalekorey

火山引擎 最新活动