【发布时间】:2012-06-26 00:28:00
【问题描述】:
我有一个 jar 文件,我想将它放入我的应用程序服务器 (WebLogic) 的 共享库 中。该 jar 包含一些实现位于 war 部署 内部的接口的类。并且部署有一个 Spring 单例,它初始化包含在共享 jar 中的类。
所以我猜发生的情况是该类无法加载,因为接口尚未加载(它们在部署中),并且当类加载器尝试加载该类时,它可能会出现一些编译错误(我没有在任何地方都看不到它)并且不加载它,并且当部署尝试实例化尚未加载的东西(共享 jar)时 - 它会出错。
所以问题是我在这里做什么?我如何配置所有这些工作?我真的不想复制包含共享文件夹中所有接口的 jar。 (必须是一个完整的 .war 文件)。
谢谢。
附:不幸的是,在加载域库(共享)文件夹时,我没有任何错误/异常。当我尝试实例化它时,我只有 java.lang.NoClassDefFoundError。
【问题讨论】:
-
我认为你别无选择。将接口移动到 lib 目录。至少尝试一下,看看它是否有效。为什么你对共享库中的实现没有问题,而不是接口?
-
我试过了,其实我最初就是这么实现的,但是工作的人不习惯把战争档案分开,他们说一切都应该放在一个可交付成果中。我现在正在尝试使用 APP-INF/lib 文件夹的 .ear,如果它有效,我将在此处更新提要。同样关于实施 - 这些是客户实施,并且是可选的;这不是我们作为产品的可交付成果。
标签: java weblogic shared-libraries classloader application-server