温馨提示×

如何解决centos中weblogic报错

小樊
32
2025-12-29 13:20:40
栏目: 智能运维

CentOS 上 WebLogic 报错排查与解决

一、快速定位流程

  • 查看域日志:到 $DOMAIN_HOME/servers/<server_name>/logs/ 打开 server.log,优先从最新的 Caused by 向上追溯堆栈,定位模块与行号。
  • 检查系统资源与进程:用 ps -ef | grep weblogictop/htop 看进程与 CPU/内存;用 free -mdf -h 检查内存与磁盘;必要时用 journalctl -n 100 看系统侧事件。
  • 验证网络与端口:用 ss -tulpen | grep :7001netstat -tulpen | grep :7001 确认监听;对管理口做 ping/ telnet/nc 连通性测试。
  • 核对关键配置与权限:检查 $DOMAIN_HOME/config/config.xmlListenPort、目录属主/权限;避免用 root 直接启动,建议使用专用 weblogic 用户。
  • 防火墙放行:对管理端口(默认 7001)放行,例如:
    firewall-cmd --zone=public --add-port=7001/tcp --permanent && firewall-cmd --reload。

二、常见错误与对应处理

  • 端口冲突(如 7001/7002 被占用):用 ss -tulpen | grep :7001 找到占用 PID 并停止,或在 config.xml 调整 ListenPort 后重启。
  • 权限/SELinux 限制:确保 $DOMAIN_HOME 属主与启动用户一致;临时排查可用 setenforce 0,生产环境建议按需配置 SELinux 策略而非永久关闭。
  • 内存不足或 GC 异常:在 startWebLogic.sh/setDomainEnv.sh 设置 JAVA_OPTIONS=“-Xms512m -Xmx1024m”(按物理内存与负载调整)。
  • 节点管理器异常:删除 nodemanager.state 后重启 Node Manager;开放 5556 端口并重启防火墙。
  • JDBC/数据源连不通:核对 URL、用户名、密码、驱动类名 与数据库网络;在控制台测试连接,必要时更换匹配版本的 JDBC 驱动。
  • 类加载/共享库冲突:遵循 WebLogic 共享库规则——EAR 用 weblogic-application.xml、WAR 用 weblogic.xml;非 WAR 类型库不能在 weblogic.xml 引用;确保库在部署描述符中正确声明。

三、高频场景的修复操作

  • 管理控制台访问不了:确认进程存活、监听 7001,防火墙已放行;在控制台测试数据源连通性;必要时用 tail -f $DOMAIN_HOME/servers/<server_name>/logs/server.log 观察启动期异常。
  • 启动缓慢或反复输入凭据:在 $DOMAIN_HOME/servers/AdminServer/security/boot.properties 写入
    username=weblogic
    password=YourPassword
    以实现自动引导(文件权限 600)。
  • 异常关机/重复启动导致无法启动:按序清理残留锁与缓存文件 edit.lok、config.lok、AdminServer.lok、EmbeddedLDAP.lokservers/AdminServer/data/store/*.DAT 后再启动。
  • 系统资源限制过低:在 /etc/security/limits.conf 提升 nofile(文件描述符)与 nproc(进程数),如:
    weblogic soft nofile 65536
    weblogic hard nofile 65536
    weblogic soft nproc 4096
    weblogic hard nproc 4096

四、稳定运行与优化建议

  • 以服务方式托管:为 WebLogic 配置 systemd 单元(示例见下),便于开机自启、日志采集与统一管控。
  • 日志轮转:为 server.log/console.log 配置 logrotate,避免磁盘被占满。
  • JVM 与 GC:结合负载设置 -Xms/-Xmx,必要时使用 G1GC 并监控 GC 日志与停顿时间。
  • 连接池与数据源:合理设置 Initial/Max Capacity、Timeout、Test Connections,启用失效连接回收与泄漏监控。
  • 安全加固:限制管理端口访问、启用 TLS/强口令/最小权限,定期更新 WebLogic 与 JDK 补丁。
  • 变更管控:变更前备份 $DOMAIN_HOME/config 与关键应用,先在测试环境验证再上线。

五、systemd 服务示例

  • 创建单元文件 /etc/systemd/system/weblogic.service
    [Unit]
    Description=WebLogic Server
    After=network.target

    [Service]
    Type=forking
    User=weblogic
    Group=weblogic
    WorkingDirectory=/opt/weblogic/user_projects/domains/base_domain
    ExecStart=/opt/weblogic/user_projects/domains/base_domain/bin/startWebLogic.sh
    ExecStop=/opt/weblogic/user_projects/domains/base_domain/bin/stopWebLogic.sh
    Restart=on-failure
    StandardOutput=journal
    StandardError=journal

    [Install]
    WantedBy=multi-user.target

  • 启用与操作:
    sudo systemctl daemon-reload
    sudo systemctl enable --now weblogic
    sudo systemctl status weblogic
    sudo journalctl -u weblogic -f

  • 注意:将 User/Group、WorkingDirectory、ExecStart/ExecStop 替换为你的实际路径与脚本;确保脚本具备可执行权限,并以非交互方式启动。

0