【发布时间】:2015-10-23 15:18:37
【问题描述】:
我在 WebLogic 12c 的托管服务器上部署了一个 WAR 文件。所有需要的 3rd 方 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 作为基于客户端请求的应用服务器。所以我不是这方面的专家。如果有人能在这个问题上帮助我,我们将不胜感激。
【问题讨论】:
-
感谢以下所有答案。但是日志中抱怨的丢失的 Jar 在类路径中是唯一的。最后,似乎有些 Jars 需要与类加载器处于同一级别才能被发现。在我移动了 1 个 Jar 之后,我将环境变量 CLASSPATH 也放入了 WEB-INF/lib,问题就消失了。
-
你说的是什么环境变量?我们有同样的问题,但我不完全理解你的解决方案。顺便说一句:如果您找到了解决方案,请回答您自己的问题(并接受它)。谢谢
标签: weblogic classloader