You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Weblogic Server启动失败抛出NullPointerException异常问题求助

WebLogic Server启动空指针故障解决方案

故障现象

启动WebLogic AdminServer过程中服务直接中止,抛出java.lang.NullPointerException异常,核心错误堆栈如下:

<AdminServer> <main> <<WLS Kernel>> <> <> <Server subsystem failed. Reason: 
java.lang.NullPointerException
java.lang.NullPointerException
at weblogic.deploy.internal.adminserver.DeploymentManager.getPendingDeploymentsForEditLockOwner(DeploymentManager.java:360)
at weblogic.management.provider.internal.EditAccessImpl.removePendingUpdateTasks(EditAccessImpl.java:560)
at weblogic.management.provider.internal.EditAccessImpl.undoUnsavedChanges(EditAccessImpl.java:555)
at weblogic.management.provider.internal.EditAccessImpl.acquireLock(EditAccessImpl.java:264)
at weblogic.management.provider.internal.EditAccessImpl.startEdit(EditAccessImpl.java:289)
at weblogic.management.deploy.ApplicationsDirPoller.removeStagedFilesForAppsRemovedSinceLastShutdown(ApplicationsDirPoller.java:426)
at weblogic.management.deploy.internal.DeploymentServerService.initializeApplicationPoller(DeploymentServerService.java:274)
at weblogic.management.deploy.internal.DeploymentServerService.startAdminServerDeploymentService(DeploymentServerService.java:233)
at weblogic.management.deploy.internal.DeploymentServerService.init(DeploymentServerService.java:154)
at weblogic.management.deploy.internal.DeploymentPreStandbyServerService.start(DeploymentPreStandbyServerService.java:26)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

故障原因

从堆栈链路可以定位到,异常出在部署子系统启动阶段:服务启动时会自动回滚上次异常退出时未保存的配置编辑会话、清理已删除应用的暂存文件,这个过程中如果残留的编辑锁损坏、待处理部署记录缺失对应属主信息,就会触发空指针导致启动中断。

修复步骤

按优先级依次操作,每步操作后尝试启动服务验证,无需一次性执行所有步骤:

  • 第一步:清理临时缓存与残留锁文件
    1. 执行进程查询命令,杀掉所有和当前故障域相关的WebLogic Java进程,确保没有进程占用域目录文件
    2. 进入故障域的根目录,删除servers/AdminServer/tmp路径下的全部内容,该目录存放运行时临时缓存,重启时会自动重建,不会影响正式配置
    3. 删除域根目录下pending文件夹内的所有文件,该目录存储未激活的配置变更,异常退出时残留的损坏配置基本都存在这里
    4. 删除域根目录下的edit.lok文件,该文件是配置编辑会话的锁文件,服务异常退出时不会自动释放,残留会导致配置编辑流程异常
  • 第二步:清理异常部署配置记录
    如果第一步操作后仍报错,停掉所有WebLogic进程,进入域目录下config/deployments路径,检查是否存在0字节的配置文件、名称乱码或和近期删除应用对应的异常部署条目,将异常条目移动到域目录外的备份位置(不要直接删除,方便后续回溯恢复),重复第一步的缓存、锁文件清理操作后再尝试启动
  • 第三步:规避版本已知bug
    如果使用的是12.1.3、12.2.1.2等早期12c版本,该空指针是官方确认的已知缺陷,触发点是应用目录轮询器处理关机前已删除应用时未做非空判断。可以修改AdminServer启动脚本,在启动参数中追加-Dweblogic.deploy.enableAppDirPolling=false临时关闭应用目录自动轮询,启动成功后登录控制台清理掉残留的异常部署任务,再移除该启动参数恢复正常配置即可。

内容的提问来源于stack exchange,提问作者Sweety23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 06:42:37