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

JDeveloper 12c部署至WebLogic 12.x时遇ClassNotFoundException错误

解决JDeveloper 12c部署到WebLogic 12.x时的JpsApplicationLifecycleListener类找不到问题

这个问题我之前在部署ADF项目到WebLogic时碰到过,核心原因是WebLogic尝试加载JPS(Java Platform Security)相关的监听器,但对应的类或者依赖配置出了问题。下面给你几个具体的排查和解决方向:

1. 检查WebLogic域的JPS配置状态

这个JpsApplicationLifecycleListener属于Oracle JPS组件,只有当你的WebLogic域启用了JPS(比如配置了ADF安全、Oracle身份管理相关功能)时,WebLogic才会默认加载这个类。

  • 打开WebLogic域的config/config.xml文件,搜索<jps-config>节点,如果找不到这个节点,说明你的域没有配置JPS。这种情况下,要么是项目里有依赖JPS的组件(比如ADF安全),要么是某个间接依赖触发了JPS监听器的加载。
  • 如果域没启用JPS但项目确实不需要JPS功能,你需要清理项目中依赖JPS的部分;如果需要JPS,那得给WebLogic域添加JPS配置(可以用Configuration Wizard重新配置域,勾选JPS相关选项)。

2. 排查项目依赖的隐式配置

你说自己的weblogic-application.xml里没配置这个监听器,但很可能是项目依赖的库(比如你引用的adf.oracle.domain库)在它自身的META-INF/weblogic-application.xml中配置了这个监听器,导致部署时被WebLogic读取并加载。

  • 找到adf.oracle.domain库的位置(一般在JDeveloper的安装目录或者WebLogic的Oracle Common目录下),解压它的jar文件,查看META-INF/weblogic-application.xml里是否包含JPS监听器的配置。
  • 如果项目不需要ADF域相关的安全功能,可以尝试注释掉weblogic-application.xml里的<library-ref>中对adf.oracle.domain的引用,再重新部署试试。

3. 确认WebLogic的JPS库是否存在

这个类所在的jar包是jps-wls.jar,你可以在WebLogic的安装路径里找一下,路径大概是:

ORACLE_HOME/oracle_common/modules/oracle.jps_12.1.3/jps-wls.jar
  • 如果这个jar包不存在,说明你的WebLogic安装不完整,缺少JPS组件,需要重新运行安装程序,勾选JPS相关的选项进行补充安装。
  • 如果jar包存在,确认WebLogic域的类路径是否包含这个jar,可以检查域的lib目录或者查看WebLogic启动脚本中的类路径配置,确保这个jar被正确加载。

4. 手动禁用JPS监听器(谨慎使用)

如果你确认项目完全不需要JPS功能,可以在自己的weblogic-application.xml里添加配置,手动禁用这个监听器:

<weblogic-application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                      xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-application http://www.bea.com/ns/weblogic/weblogic-application/1.0/weblogic-application.xsd" 
                      xmlns="http://www.bea.com/ns/weblogic/weblogic-application">
    <!-- 原有的配置内容 -->
    <!--<listener> <listener-class>oracle.adf.share.weblogic.listeners.ADFApplicationLifecycleListener</listener-class> </listener>-->
    <!--<listener> <listener-class>oracle.mds.lcm.weblogic.WLLifecycleListener</listener-class> </listener>-->
    <library-ref>
        <library-name>adf.oracle.domain</library-name>
    </library-ref>
    
    <!-- 添加禁用JPS监听器的配置 -->
    <listener>
        <listener-class>oracle.security.jps.wls.listeners.JpsApplicationLifecycleListener</listener-class>
        <disable>true</disable>
    </listener>
</weblogic-application>
  • 注意:这个方法只适合完全不依赖JPS的项目,如果项目里有ADF安全或者其他JPS相关的功能,禁用后会导致这些功能失效。

另外,你还可以解压项目打包后的ear/war文件,全局搜索JpsApplicationLifecycleListener,看看是哪个配置文件引入了这个监听器,这样能更精准定位问题根源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:09:52