首先确认WebLogic服务是否正在运行,使用systemctl命令(适用于CentOS 7及以上版本):
systemctl status weblogic
若服务未启动,尝试启动:
systemctl start weblogic
若启动失败,需进一步查看日志定位原因。
WebLogic的日志文件集中存储在DOMAIN_HOME/servers/server_name/logs目录下,关键日志包括:
使用以下命令实时查看日志末尾内容或过滤关键字:
tail -f /path/to/DOMAIN_HOME/servers/AdminServer/logs/AdminServer.log # 实时查看AdminServer日志
grep -i 'error\|exception' /path/to/DOMAIN_HOME/servers/server_name/logs/server.log # 过滤错误信息
日志中的错误代码(如BEA-000386、java.lang.OutOfMemoryError)是定位问题的关键线索。
使用top、free、df等命令检查系统资源是否充足:
top命令查看WebLogic进程(通常以java开头)的CPU占用,若长期超过80%,可能存在线程死锁或代码性能问题;free -m查看内存剩余量,若Swap分区使用率过高(超过20%),需扩容物理内存或调整JVM堆参数;df -h检查DOMAIN_HOME所在分区的剩余空间,若剩余空间不足(小于10%),可能导致日志写入失败或应用无法启动。WebLogic的核心配置文件位于DOMAIN_HOME/config目录,需重点检查:
xmlstarlet工具验证XML格式:xmlstarlet val /path/to/DOMAIN_HOME/config/config.xml
-Xms、-Xmx)是否合理(建议不超过物理内存的80%),以及JAVA_HOME路径是否指向正确的JDK安装目录。ping命令测试WebLogic服务器与客户端/数据库的网络连通性;netstat或ss命令检查WebLogic监听端口(如7001、8001)是否被占用:netstat -tulnp | grep ':7001\b' # 查看7001端口的使用情况
ss -tulnp | grep ':7001\b' # 更现代的替代命令
若端口被占用,可修改config.xml中的端口或停止占用进程。WebLogic服务需由专用用户(如weblogic)运行,避免使用root用户启动。若权限错误,可执行以下命令修复:
chown -R weblogic:bea /path/to/weblogic # 递归修改WebLogic目录的所有者为weblogic用户
若SELinux开启(getenforce返回Enforcing),需调整SELinux策略或临时设置为宽松模式:
setenforce 0 # 临时关闭SELinux(重启后恢复)
长期解决方案是修改/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=permissive。
若日志中出现java.lang.OutOfMemoryError,需调整JVM堆内存大小。编辑DOMAIN_HOME/bin/setDomainEnv.sh(Linux)文件,修改以下参数:
export MEM_ARGS="-Xms2048m -Xmx4096m -XX:MaxPermSize=512m" # 根据服务器内存调整,例如初始堆2G、最大堆4G、PermGen 512M
调整后重启WebLogic使配置生效。
http://<weblogic_host>:7001/console,查看服务器状态、应用部署情况、JVM内存使用率等;connect('weblogic', 'password', 't3://localhost:7001')
serverRuntime()
exit()
7001),分析线程堆栈、内存泄漏等问题。若上述步骤无法解决问题,可尝试重启WebLogic服务:
systemctl restart weblogic
或重启整个CentOS系统(谨慎操作,需提前保存数据)。
若问题仍未解决,建议查阅Oracle官方文档(如《WebLogic Server Administration Guide》)或在Oracle社区、Stack Overflow等技术论坛寻求帮助,提供详细的日志信息和故障场景。