WebLogic的日志是排查启动失败的核心依据,需优先检查。日志文件通常位于${DOMAIN_HOME}/servers/${SERVER_NAME}/logs/目录下(如server.log、stdout.log、stderr.log)。通过tail -f server.log实时查看启动过程中的错误信息(如bea-000386网络配置错误、OutOfMemoryError内存不足、ClassCastException类冲突等),根据错误代码或堆栈跟踪快速定位问题根源。
WebLogic默认使用7001(HTTP)、7002(HTTPS)等端口,若这些端口被其他进程占用,会导致启动失败。
netstat -tulnp | grep <端口号>(如netstat -tulnp | grep 7001)查看端口占用进程。kill -9 <PID>)或修改WebLogic端口(编辑config/config.xml中的<port>标签,如将7001改为8001)。配置文件错误(如路径、参数拼写错误)是常见诱因,需重点检查:
config/config.xml(确保<server>、<listener>、<data-source>等标签配置正确,无语法错误);bin/startWebLogic.sh(检查JAVA_HOME、WL_HOME路径是否正确,内存参数-Xms、-Xmx是否合理);servers/AdminServer/security/boot.properties(确保用户名、密码正确,避免认证失败)。内存不足会导致WebLogic无法启动,常见错误为OutOfMemoryError。
bin/startWebLogic.sh,在JAVA_OPTIONS中添加或调整内存参数(如-Xms512m初始堆内存、-Xmx2048m最大堆内存,-XX:MaxPermSize=512m永久代内存,适用于Java 7及以下版本;Java 8及以上需调整为-XX:MaxMetaspaceSize=512m)。WebLogic对JDK版本有严格要求(如WebLogic 12c需JDK 7+,WebLogic 14c需JDK 8+),版本不兼容会导致启动失败。
java -version查看当前JDK版本,确认与WebLogic版本匹配。startWebLogic.sh,确保JAVA_HOME指向正确JDK路径(如export JAVA_HOME=/usr/java/jdk1.8.0_391)。WebLogic需要足够权限访问文件、目录和端口,权限不足会导致启动失败。
root用户启动(可能导致端口绑定失败),建议使用专用用户(如weblogic)启动。chown -R weblogic:weblogic ${DOMAIN_HOME}将Domain目录所有权赋予weblogic用户;使用chmod -R 755 ${DOMAIN_HOME}设置合理权限。edit.lok、config.lok、AdminServer.lok等锁定文件,删除后可解决文件锁定问题(需确保无其他进程占用)。系统资源不足(如文件描述符、进程数、磁盘空间)会导致启动失败。
top查看CPU、内存使用率;df -h查看磁盘空间(确保/分区有足够空间,建议剩余空间大于10GB);ulimit -n查看文件描述符限制(默认可能较低)。/etc/security/limits.conf,增加weblogic用户的资源限制(如weblogic soft nofile 65536、weblogic hard nofile 65536);编辑/etc/systemd/system.conf(若使用systemd),调整DefaultLimitNOFILE=65536。临时文件或诊断文件的损坏可能导致启动失败,可尝试清理:
tmp目录(如rm -rf ${DOMAIN_HOME}/servers/AdminServer/tmp/*);diagnostic_files目录(如rm -rf ${DOMAIN_HOME}/diagnostic_files/*);cache目录(如rm -rf ${DOMAIN_HOME}/servers/AdminServer/cache/*)。网络问题或防火墙阻塞会导致WebLogic无法正常通信,需检查:
ping <目标主机>测试网络连通性;nslookup <域名>测试DNS解析是否正常;iptables -L -n查看防火墙规则,开放WebLogic所需端口(如iptables -A INPUT -p tcp --dport 7001 -j ACCEPT),或临时关闭防火墙测试(systemctl stop firewalld,仅用于排查问题)。若启动失败与特定应用程序相关(如DeploymentException),需重新部署或修复应用:
autodeploy目录下的应用WAR包,重新上传并部署;WEB-INF目录存在web.xml文件);