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

WebLogic 12c升级启动模块遇org.springframework.aop.framework.AopConfigException错误

解决WebLogic 12c启动Spring 2.5.2应用时的ClassNotFoundException问题

我来帮你分析下这个问题,WebLogic 12c和11g的类加载机制以及内置库存在差异,这大概率是类加载优先级冲突导致的——即使你的WAR包里包含spring-aop-2.5.2.jar,WebLogic 12c自带的高版本Spring类可能优先被加载,从而找不到旧版本里的特定类。咱们一步步来解决:

1. 完善weblogic-application.xml的类加载优先级配置

你提到项目里没有这个文件,没关系,直接在WAR包的WEB-INF目录下创建它(如果是EAR包则放在META-INF),并且不仅仅添加cglib的包,要把所有Spring相关的包都纳入优先加载范围:

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-application xmlns="http://xmlns.oracle.com/weblogic/weblogic-application"
                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                     xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-application http://xmlns.oracle.com/weblogic/weblogic-application/1.7/weblogic-application.xsd">
    <prefer-application-packages>
        <!-- 强制优先加载应用内的所有Spring类,覆盖WebLogic内置的高版本Spring -->
        <package-name>org.springframework.*</package-name>
        <!-- Spring 2.5依赖cglib,同样强制优先加载应用内的版本 -->
        <package-name>net.sf.cglib.*</package-name>
        <!-- cglib依赖asm,也要加上,避免版本冲突 -->
        <package-name>org.objectweb.asm.*</package-name>
    </prefer-application-packages>
</weblogic-application>

解释下:WebLogic 12c的modules目录里自带了Spring 3.x的相关类,默认情况下服务器会优先加载自身的类,导致你的应用试图用高版本Spring的类结构去匹配2.5.2的jar,自然找不到AopConfigException这类旧版本的类。

2. 验证WAR包内依赖的完整性

虽然你确认了spring-aop-2.5.2.jar存在,但可以用命令验证该jar里是否真的包含目标类:

jar tf spring-aop-2.5.2.jar | grep AopConfigException

同时检查Spring 2.5.2的其他核心依赖(比如spring-core、spring-beans、spring-context等)是否都在WAR的WEB-INF/lib目录下,这些是spring-aop正常运行的基础。

3. 调整Web控制台的类加载策略

登录WebLogic控制台,找到你的WAR应用,进入配置 > 类加载页面,把类加载策略设置为应用程序优先(即Application First),而不是默认的“服务器优先”。这个设置会让WebLogic先加载应用内的jar,再加载服务器自带的库,从根本上避免冲突。

4. 补充资源文件的优先加载配置(可选)

如果上述配置后仍有问题,可以在weblogic-application.xml中添加资源文件的优先加载规则,确保应用的Spring配置文件不被服务器的覆盖:

<prefer-application-resources>
    <resource-name>org/springframework/**/*.xml</resource-name>
    <resource-name>org/springframework/**/*.properties</resource-name>
</prefer-application-resources>

5. 考虑Spring版本的兼容性优化

Spring 2.5.2是比较老旧的版本,WebLogic 12c通常搭配JDK 8运行,而Spring 2.5.2对JDK 8的支持有限。如果条件允许,建议升级到Spring 2.5.x系列的最后一个版本2.5.6,它修复了不少兼容性问题,可能会解决一些隐性的类加载异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 16:22:42