日志是排查部署失败的核心依据。WebLogic的日志主要存放在**$DOMAIN_HOME/logs目录下($DOMAIN_HOME为域根目录,可通过echo $DOMAIN_HOME确认),其中server.log**记录了服务器运行、部署过程的详细信息。使用以下命令实时查看最新日志或筛选错误信息:
cd $DOMAIN_HOME/logs
tail -f server.log # 实时查看最新日志
grep "ERROR" server.log # 筛选错误关键字
grep "DeploymentException" server.log # 筛选部署相关的错误
通过日志中的错误堆栈(如java.lang.NullPointerException、ClassNotFoundException等),可快速定位问题根源。
WebLogic对Java版本有严格要求(如WebLogic 12c及以上需要JDK 8+,WebLogic 14c需要JDK 11+)。通过以下命令确认Java版本:
java -version
若版本不兼容,需卸载旧版本并安装匹配的JDK:
sudo apt remove openjdk-* # 卸载现有OpenJDK
sudo apt install openjdk-11-jdk # 安装JDK 11(以WebLogic 12c为例)
安装后,需设置JAVA_HOME环境变量(编辑~/.bashrc或/etc/profile,添加export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64,然后执行source ~/.bashrc)。
WebLogic默认使用7001(HTTP)、7002(HTTPS)、**5556(节点管理器)**等端口。若这些端口被其他进程(如Apache、Nginx)占用,会导致部署失败。使用以下命令检查端口占用情况:
sudo netstat -tulnp | grep ':7001\b' # 检查7001端口
sudo netstat -tulnp | grep ':5556\b' # 检查节点管理器端口
若端口被占用,可选择:
sudo kill -9 <PID>(PID为netstat输出中的进程号);$DOMAIN_HOME/config/config.xml中的<port>标签(如将<port>7001</port>改为<port>8001</port>),或通过WebLogic控制台(http://localhost:7001/console)修改。WebLogic的配置文件(如config.xml、boot.properties、setDomainEnv.sh)错误会导致部署失败:
<domain>、<server>、<data-source>等标签的语法是否正确(如是否缺少闭合标签、属性值是否引号包裹);weblogic.security.Encrypt工具生成);JAVA_HOME、WL_HOME等环境变量是否指向正确路径。WebLogic部署大型应用时,内存不足会导致OutOfMemoryError。需修改启动脚本($DOMAIN_HOME/bin/startWebLogic.sh)中的内存参数,增加堆内存大小:
export JAVA_OPTIONS="-Xms512m -Xmx2048m -XX:MaxPermSize=512m"
其中,-Xms为初始堆内存,-Xmx为最大堆内存(建议-Xmx不超过物理内存的80%)。
WebLogic需要足够的权限访问域目录、日志文件和应用文件。确保当前用户(如weblogic)对$DOMAIN_HOME及其子目录有读写权限:
sudo chown -R weblogic:weblogic $DOMAIN_HOME
sudo chmod -R 755 $DOMAIN_HOME
若使用root用户启动WebLogic,可能会导致权限问题,建议使用专用用户(如weblogic)启动。
若部署的是集群应用,节点管理器未启动或无法访问会导致服务器无法启动。检查节点管理器状态:
ps -ef | grep nodemanager # 查看节点管理器进程
若未启动,执行$DOMAIN_HOME/bin/startNodeManager.sh启动节点管理器。同时,检查$DOMAIN_HOME/nodemanager/nodemanager.properties中的ListenPort(默认5556)是否正确,以及防火墙是否允许该端口通过:
sudo ufw allow 5556/tcp # 开放5556端口(Ubuntu防火墙)
若部署的应用本身有问题(如WAR包损坏、依赖缺失),需重新打包并部署:
unzip -t your_app.war检查);通过以上步骤逐一排查,可解决大部分Ubuntu上WebLogic部署失败的问题。若仍无法解决,建议根据日志中的具体错误信息,在WebLogic官方论坛或社区寻求帮助。