Ubuntu系统下WebLogic启动失败的通用解决流程
WebLogic的日志是排查启动问题的核心依据,Ubuntu下日志默认存放在$DOMAIN_HOME/logs目录($DOMAIN_HOME为域主目录,可通过echo $DOMAIN_HOME确认)。使用以下命令动态查看最新日志或筛选关键信息:
cd $DOMAIN_HOME/logs
tail -f server.log # 动态跟踪server.log最新内容
grep 'ERROR' server.log # 筛选包含"ERROR"的日志行(定位关键错误)
根据日志中的异常堆栈(如java.lang.OutOfMemoryError、Port already in use等)针对性解决。
WebLogic默认使用7001(HTTP)、7002(HTTPS)等端口,若被其他进程占用会导致启动失败。
netstat或lsof命令(Ubuntu推荐ss,更高效):sudo ss -tulnp | grep ':7001' # 查看7001端口的占用进程
kill -9 <PID>,<PID>为进程ID);$DOMAIN_HOME/config/config.xml中的<server>标签下的<listen-port>属性(如将7001改为8001),保存后重启。配置文件错误(如路径错误、参数缺失)是常见诱因,重点检查以下文件:
JAVA_HOME)、内存参数(-Xms、-Xmx)是否正确设置(如export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64);ListenPort(默认5556)是否正确,SecureListener是否与启动方式匹配(如false表示非SSL)。WebLogic对JDK版本有严格要求(如12c及以上需JDK 8+,14c及以上需JDK 11+),需确保:
$JAVA_HOME/bin/java -version查看版本(Ubuntu下常用OpenJDK,如openjdk-11-jdk);setDomainEnv.sh(位于域的bin目录)中确认JAVA_HOME指向正确的JDK路径(如export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64);sudo chmod -R 755 $JAVA_HOME)。Ubuntu的权限机制可能导致WebLogic无法访问关键目录:
$DOMAIN_HOME、$WL_HOME(WebLogic安装目录)的所有者为启动用户(如oracle),使用chown -R oracle:oracle $DOMAIN_HOME修改;$DOMAIN_HOME/logs、$DOMAIN_HOME/tmp目录是否有写入权限(chmod -R 775 logs tmp);root用户启动(易引发安全问题),建议使用专用用户(如oracle)。若WebLogic异常退出(如强制杀进程),可能残留锁定文件导致启动失败:
$DOMAIN_HOME/servers/*/tmp目录,删除所有.lok文件(如rm -f */tmp/*.lok);$DOMAIN_HOME/servers/<server_name>/data/nodemanager/<server_name>.state文件(如rm -f servers/AdminServer/data/nodemanager/AdminServer.state),然后重启节点管理器。OutOfMemoryError,调整startWebLogic.sh中的内存参数(如-Xms512m -Xmx1024m,根据服务器内存调整);$JAVA_HOME/jre/lib/security/java.security),将securerandom.source=file:/dev/random改为securerandom.source=file:/dev/./urandom(提升随机数生成速度)。若无法通过浏览器访问http://localhost:7001/console:
ss -tulnp | grep ':7001'检查端口是否处于LISTEN状态;ufw开放端口(sudo ufw allow 7001/tcp),然后重启防火墙(sudo ufw reload);Environment→Servers→<server_name>→Configuration→General中,Listen Port已设置且Enabled为true)。若WebLogic运行在生产模式,启动时未提供控制台输入会导致Failed to get value from Standard Input错误:
$DOMAIN_HOME/servers/<server_name>/security目录下创建boot.properties文件(若目录不存在则新建),内容如下:username=weblogic # 替换为管理员账号
password=Welcome1 # 替换为管理员密码(建议使用加密密码)
保存后重启WebLogic,系统会自动读取该文件完成认证。