在WebLogic 12c中,即使罐子在那里,也会抛出ClassNotFound

问题描述 投票:3回答:3

我在WebLogic 12c中的受管服务器上部署了WAR文件。所有需要的第三方JAR都放在WEB-INF / lib中。顺便说一句,相同的WAR在WebSphere和Tomcat中可以正常工作。当我运行该应用程序时,它报告找不到某个类,该类位于WEB-INF / lib下的jar文件中。

此类绝对不会被WebLogic安装的类所遮盖。所以我的第一个问题是,即使JAR文件位于WEB-INF / lib下,为什么也不会加载该类。

然后,我想也许可以将JAR放入$ DOMAIN_DIR / lib下的系统类路径中,但是会发生相同的错误。我试图使用类加载器分析工具定位该类,它显示该类可以在$ DOMAIN_DIR / lib下的jar文件中找到。然后我很困惑为什么会引发ClassNotFoundException。

我必须承认,这是我第一次根据客户端的请求将WebLogic用作应用程序服务器。所以我不是这方面的专家。如果有人可以在这个问题上为我提供帮助,我们深表感谢。

weblogic classloader
3个回答
1
投票

使用weblogic.xml文件中的preferred-web-inf-classes标记,以确保WebLogic不会从类路径上的其他位置覆盖jar。

有关更多详细信息,请参见此页面:

https://docs.oracle.com/cd/E24329_01/web.1211/e21049/weblogic_xml.htm#WBAPP600


0
投票

一种确定正在加载哪个jar文件的好的做法是使用JVM属性:-verbose:class

如果最终从您的jar文件中加载它,则可能是树类加载问题。


0
投票

我有一个类似的问题,对您的聊天结果非常感兴趣。我的问题是:Migrating from Weblogic 11 to Weblogic 12, getting ClassNotFoundException

如果您能帮助我,那就太好了。

预先感谢。

© www.soinside.com 2019 - 2024. All rights reserved.