激活FastSwap后Oracle ADF 11g项目部署到集成WebLogic失败
问题
使用JDeveloper 11g R2开发Oracle ADF项目,开启WebLogic服务器的FastSwap功能后无法部署项目,抛出weblogic.management.DeploymentException错误;但默认的servlet reload模式下项目可正常运行。已尝试搜索日志关键词但未找到解决方案,WebLogic报错日志如下:
<4-gen-2023 14.36.31 CET> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID '1672839391501' for task '2'. Error is: 'weblogic.management.DeploymentException: ' weblogic.management.DeploymentException: at weblogic.application.internal.BaseDeployment.throwAppException(BaseDeployment.java:79) at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:186) at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:58) at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:154) at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60) Truncated. see log file for complete stacktrace Caused By: java.lang.NoClassDefFoundError: Could not initialize class com.bea.wls.redef.ClassRedefinerFactory at weblogic.application.internal.flow.InitFastSwapLoaderFlow.initLoader(InitFastSwapLoaderFlow.java:70) at weblogic.application.internal.flow.InitFastSwapLoaderFlow.prepare(InitFastSwapLoaderFlow.java:46) at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:613) at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52) at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:184) Truncated. see log file for complete stacktrace > <4-gen-2023 14.36.31 CET> <Warning> <Deployer> <BEA-149004> <Failures were detected while initiating deploy task for application 'PROJECT'.> <4-gen-2023 14.36.31 CET> <Warning> <Deployer> <BEA-149078> <Stack trace for message 149004 weblogic.management.DeploymentException: at weblogic.application.internal.BaseDeployment.throwAppException(BaseDeployment.java:79) at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:186) at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:58) at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:154) at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60) Truncated. see log file for complete stacktrace Caused By: java.lang.NoClassDefFoundError: Could not initialize class com.bea.wls.redef.ClassRedefinerFactory at weblogic.application.internal.flow.InitFastSwapLoaderFlow.initLoader(InitFastSwapLoaderFlow.java:70) at weblogic.application.internal.flow.InitFastSwapLoaderFlow.prepare(InitFastSwapLoaderFlow.java:46) at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:613) at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52) at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:184) Truncated. see log file for complete stacktrace
排查方向
- 检查版本兼容性:FastSwap对WebLogic与JDeveloper的版本匹配要求严格,确认WebLogic Server版本是否与JDeveloper 11g R2(对应WebLogic 10.3.6)完全兼容,版本不匹配易引发类加载异常。
- 验证FastSwap配置:
- 检查项目中
weblogic.xml(Web模块)或weblogic-application.xml(EAR模块)的FastSwap配置,确保<fast-swap>节点格式正确、属性设置无误,无拼写错误。 - 确认配置里的
swap-dir路径存在,且WebLogic服务进程拥有该路径的读写权限,路径避免包含特殊字符或空格。
- 检查项目中
- 校验WebLogic类库依赖:
- 检查WebLogic安装目录下
wlserver/server/lib文件夹,确认weblogic.jar、weblogic-redef.jar等FastSwap相关依赖包是否存在,缺失则从对应版本安装包补全。 - 排查项目第三方jar包,避免引入与WebLogic类库冲突的组件,尤其是涉及类加载、字节码操作的包,这类包会干扰FastSwap的类重定义逻辑。
- 检查WebLogic安装目录下
- 清理部署缓存:
- 删除WebLogic服务器临时部署目录(通常为
domain_name/servers/server_name/tmp/_WL_user下的项目对应文件夹),同时清理JDeveloper部署缓存(C:\Users\<用户名>\AppData\Roaming\JDeveloper\systemXX.XX.XX.XX\o.j2ee\drs),重启服务器后重新部署。
- 删除WebLogic服务器临时部署目录(通常为
- 检查JVM参数:
- FastSwap需要特定JVM支持,确认WebLogic启动时是否添加了正确参数,比如
-javaagent:<WebLogic安装路径>\wlserver\server\lib\weblogic.jar,同时避免使用干扰类重定义的JVM参数。
- FastSwap需要特定JVM支持,确认WebLogic启动时是否添加了正确参数,比如
- 查看完整报错堆栈:
- 日志提示堆栈被截断,找到WebLogic完整日志文件(通常在
domain_name/servers/server_name/logs/server_name.log),查看com.bea.wls.redef.ClassRedefinerFactory初始化失败的具体原因,比如依赖类缺失、初始化代码抛异常等。
- 日志提示堆栈被截断,找到WebLogic完整日志文件(通常在
内容的提问来源于stack exchange,提问作者gBrugna
相关产品推荐
相关产品推荐

