java - Weblogic EAR 类加载

标签 java weblogic classpath

我在 WebLogic 节点中部署一个 EAR,其中在 Bootstrap (startWeblogicServer.bat) 类路径中定义了许多 jar。问题是我的耳朵和 Bootstrap 包含相同 jar 的不同版本,不仅如此,某些 jar 还包含提取的第三方库,这些库的版本也与 WebLogic Bootstrap jar 不同,导致各种类路径错误。

我知道您可以在 EAR 应用程序 xml 中设置首选 jar,但是,就理解所有依赖项而言,解决包含提取的第三方库的 jar 可能非常乏味。

我需要在这里采取正确的方法吗?我是不是以错误的方式思考这个问题?任何帮助将不胜感激!

到目前为止,prefer-web-inf-classes 已被推荐,但不会工作,因为我没有部署 WAR,prefer-application-packages 也是我们目前正在使用的,但仍然存在上述问题......那里的建议?谢谢!

最佳答案

我认为您应该从服务器引导区域中删除 JAR,并让每个域使用域级类加载器从其各自的 EAR 加载 JAR。

您已经知道这是真的,因为您采用的方法会给您带来问题。

按您的方式执行此操作的唯一理由是尝试通过不在多个域中复制 JAR 来节省一些磁盘空间。我说磁盘空间很便宜,而且一直在变便宜。通用 JAR 意味着通用依赖项,您不想强制 WebLogic 实例上的每个域都必须升级 JAR,仅仅因为一个公民需要它。

从服务器 Bootstrap 中删除 JAR,并在每个 EAR 中复制您需要的 JAR。使每个 EAR、每个域都相互独立。

更新:

您需要拥有自己的服务器。

或者将 标记添加到您的配置中。

咨询this了解详情。

关于java - Weblogic EAR 类加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1325595/

相关文章:

java - 编译程序时出现错误(线程 "main"java.lang.ArrayIndexOutOfBoundsException 中的异常)

java - 将连接表引用到 View

java - 如何在 java 中嵌入 Weblogic 服务器?

java - 根据当前日期对日期数组进行排序

java - 修复 html 中未闭合的标签或使用 HTML 解析器解析以进行 XSLT 转换

java - weblogic 集群环境中的线程被阻塞

java - 强制重新加载EntityManager

java - 即使将 mysql Jconnector 添加到 CLASSPATH 后,也会出现 java.lang.ClassNotFoundException(不使用 IDE)

java - 永久设置 CLASSPATH

java - 在 JAR 中包含 JAR 的类路径