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

Weblogic类加载异常:JNDI查找遇ClassNotFoundException求助

WebLogic JNDI Lookup: ClassNotFoundException for weblogic.rmi.internal.StubInfoIntf

这是个典型的WebLogic类加载器隔离导致的问题,我碰到过好几次类似场景——明明缺失的类和能正常加载的类在同一个Jar里,却偏偏找不到,核心原因就是StubGenerator使用的类加载器和应用类加载器不在同一个上下文。

先拆解下为什么%DOMAIN%/lib没用:这个目录下的Jar包是被应用级类加载器加载的,而weblogic.rmi.internal.StubGenerator属于WebLogic核心组件,它运行在WebLogic Server核心类加载器上下文里,这个类加载器并不会去加载应用类加载器中的类,所以哪怕你把wlthint3client.jar丢到domain/lib,核心类加载器还是看不到StubInfoIntf。

下面是几个经过验证的解决方案,按优先级排序:

1. 将Jar包放到WebLogic核心类加载器扫描目录

直接把wlthint3client.jar复制到$WL_HOME/server/lib目录($WL_HOME是你的WebLogic安装根目录),然后重启服务器。这个目录是WebLogic核心类加载器默认会扫描的位置,核心组件的类加载器能直接访问到这里的Jar,这样StubGenerator就能顺利找到StubInfoIntf了。

2. 通过PRE_CLASSPATH让系统类加载器加载Jar

如果不想修改WebLogic安装目录的文件,可以在域的启动脚本里配置PRE_CLASSPATH,让这个Jar被系统类加载器加载(WebLogic核心类加载器会委托给系统类加载器):

  • 对于Windows环境,编辑%DOMAIN_HOME%\bin\setDomainEnv.cmd,添加:
    set PRE_CLASSPATH=%DOMAIN_HOME%\lib\wlthint3client.jar;%PRE_CLASSPATH%
    
  • 对于Linux/Unix环境,编辑$DOMAIN_HOME/bin/setDomainEnv.sh,添加:
    PRE_CLASSPATH=$DOMAIN_HOME/lib/wlthint3client.jar:$PRE_CLASSPATH
    export PRE_CLASSPATH
    

添加后重启服务器即可生效。

3. 检查应用类加载器策略

如果你的应用配置了Parent Last类加载策略(即优先加载应用自身的Jar),可能会打乱WebLogic核心类加载器的委托逻辑。建议暂时改回默认的Parent First策略,测试问题是否解决。

4. 验证Jar包完整性

最后别忘了确认wlthint3client.jar里确实包含目标类,避免是Jar损坏或版本不匹配的问题:

jar tf wlthint3client.jar | grep weblogic/rmi/internal/StubInfoIntf.class

如果输出为空,说明你用的Jar包版本不对,需要下载包含该类的正确版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:50:10