CentOS 上 WebLogic 部署报错的快速排查与解决
一、先定位错误来源
- 查看域目录下的关键日志,优先从最新的异常入手:
- 管理服务器日志:$DOMAIN_HOME/servers/AdminServer/logs/AdminServer.log
- 受管服务器日志:$DOMAIN_HOME/servers//logs/.log
- 部署日志:$DOMAIN_HOME/servers/AdminServer/logs/deploy/<应用名>.log
- 前台控制台部署失败,可在控制台页面直接查看详细堆栈;命令行部署可用WLST或weblogic.Deployer并开启日志输出,便于复制完整异常信息。
二、环境与版本兼容性问题
- 版本匹配建议:
- CentOS 7.x:优先使用 WebLogic 12.2.x;WebLogic 14.1.1 在部分环境会遇到图形/AWT 校验,可在启动脚本加入 -Djava.awt.headless=true 规避。
- CentOS 6.x:可用 WebLogic 10.3.6,但存在已知兼容与性能限制。
- JDK 要求:
- WebLogic 12.2.1.3.0 及以上需 Java 8+;安装前确认 JAVA_HOME 指向合规 JDK,避免系统自带或版本不匹配的 JDK。
- 系统标识与安装校验:
- 某些安装器会对 /etc/redhat-release 做校验,必要时可按官方支持矩阵调整标识或采用静默安装方式绕过交互检查。
- 基础资源与依赖:
- 检查 swap ≥ 2G、临时目录与磁盘空间充足;安装 binutils、gcc、glibc 等基础包;创建 weblogic 专用用户与组并规范目录权限。
三、高频错误与对应修复
- 启动身份校验失败(boot.properties)
- 现象:weblogic.security.SecurityInitializationException: Authentication denied: Boot identity not valid
- 处理:在 $DOMAIN_HOME/servers/AdminServer/security(或受管服务器同名目录)创建/修正 boot.properties,以明文写入用户名与密码,首次启动会自动加密保存。
- 受管服务器无法启动或反复要求口令
- 处理:清理被管服务器数据目录中的 ldap 子目录(如:$DOMAIN_HOME/servers//ldap),必要时删除 boot.properties 后重启,让其重新生成。
- 端口冲突
- 现象:启动时提示端口被占用
- 处理:用 lsof -i:<端口> 定位进程并释放,或调整 config.xml / 控制台中的监听端口后重启。
- 类冲突与 XML/STAX 冲突
- 现象:ClassCastException(如 JSTL TLV、XML/STAX 工厂类冲突)
- 处理:清理应用 WEB-INF/lib 中冲突或重复提供的 API/JAR(如早期版本的 xml-apis.jar、stax-api.jar 等),避免与 WebLogic 自带实现产生冲突。
- 图形/AWT 相关错误(无头环境)
- 现象:启动或部署涉及图形操作时异常
- 处理:在 startWebLogic.sh 的 JAVA_OPTIONS 增加 -Djava.awt.headless=true。
- 部署包或中文路径问题
- 现象:DeploymentException(如下载文件异常、中文乱码)
- 处理:确保部署包无中文或特殊字符路径,尽量使用 UTF-8 环境,必要时改用控制台部署以查看更清晰错误。
- 防火墙/网络连通性
- 现象:控制台端口(默认 7001)无法访问
- 处理:在 firewalld 放行端口并重载规则:firewall-cmd --zone=public --add-port=7001/tcp --permanent && firewall-cmd --reload。
四、标准化部署与加固建议
- 使用非 root 用户安装与运行,目录权限归属 weblogic:weblogic;规范 JAVA_HOME / MW_HOME / WL_HOME 环境变量。
- 采用静默安装与 WLST 脚本化建域,减少人工交互与路径偏差;示例要点:
- 响应文件 wls.rsp 指定 ORACLE_HOME 与 INSTALL_TYPE=WebLogic Server
- 清单文件 oraInst.loc 指定 inventory_loc 与 inst_group
- 执行:java -jar fmw_xxx.jar -silent -responseFile wls.rsp -invPtrLoc oraInst.loc
- 建域可用 wlst.sh 读取模板并配置 ListenAddress/ListenPort,完成后用 startWebLogic.sh 启动。
五、最小可行排错清单
- 核对 WebLogic 与 JDK 版本匹配、JAVA_HOME 正确、系统时间与时区无误。
- 确认 swap ≥ 2G、磁盘与 /tmp 空间充足;必要时扩容或清理。
- 以 weblogic 用户检查并修正目录权限,确保安装/域目录可读写。
- 查看 AdminServer.log 与部署日志,优先解决最先抛出的异常栈。
- 若使用受管服务器,优先尝试清理 ldap 目录与 boot.properties 后重启。
- 无法访问控制台时,先本地 curl http://127.0.0.1:7001/console,再检查 firewalld 与云安全组策略。