CentOS 上 WebLogic 部署失败的定位与修复步骤
一、先快速定位问题
二、常见报错与对应修复
激活时报错:java.io.IOException: Reached EOF
原因:工程包时间戳“超前”服务器时间或上传中断。
处理:校准系统时间(如 ntpdate 校时),重新打包并上传,再部署。
激活时报错:[DeploymentService:290049] Deploy failed … no targets are reachable
原因:没有可达的受管服务器目标。
处理:启动受管服务器(或集群节点),确保 State=RUNNING,再执行激活。
部署阶段卡在 distribute Initializing 或 AppMerge failed to merge your application
原因:缓存/临时目录冲突、旧包残留或 web.xml 缺少 version 声明。
处理:
启动或部署时报:Unsupported major.minor version 52.0
原因:应用用 JDK 8 编译,但 WebLogic 运行时使用了 JDK 7 或更低版本。
处理:在域的 bin/startWebLogic.sh 中显式设置 JAVA_HOME 指向 JDK 8,并确保 ps -ef | grep java 看到的进程使用了正确 JDK。
解析 WAR 时报:java.util.zip.ZipException: Error opening file … Could not find End Of Central Directory
原因:上传的 WAR 包损坏 或 stage 目录残留旧文件。
处理:重新打包并校验(如 unzip -t),清理 stage 目录(如 $DOMAIN_HOME/servers/<目标>/stage/),再部署。
部署时报:Unable to parse class file: zip:…/xxx.jar!/…class 或 A version attribute was not found in element “web-app”
原因:web.xml 缺少 version 导致解析策略异常,或第三方 JAR 与容器冲突/损坏。
处理:
类加载冲突(如 ClassCastException: weblogic.xml.jaxp.RegistrySAXParserFactory)
原因:应用打包了与容器冲突的 xml-apis.jar 等。
处理:从 WEB-INF/lib 移除 xml-apis-*.jar 等冲突依赖,优先使用容器提供的 API。
JDBC 相关:Cannot startup connection pool … Cannot load driver class
原因:驱动未放置到 $DOMAIN_HOME/lib 或未在 CLASSPATH 中,或 JDBC URL/驱动类名 配置错误。
处理:将数据库驱动(如 ojdbc8.jar)放到 $DOMAIN_HOME/lib,重启后在控制台测试连接,确认 URL/用户名/密码/驱动类 正确。
三、部署前后建议的排查清单