首页 文章

Weblogic EAR类加载

提问于
浏览
3

我正在WebLogic节点中部署EAR,其中在bootstrap(startWeblogicServer.bat)类路径中定义了许多jar . 问题是我的耳朵和引导程序包含相同jar的不同版本,不仅如此,但某些jar包含提取的第三方库,其版本与WebLogic引导程序jar的版本不同,从而导致各种类路径错误 .

我知道你可以在EAR应用程序xml中设置首选的jar,但是对于包含提取的第三方库以理解所有依赖关系的jar来解决这个问题非常繁琐 .

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

到目前为止,推荐使用了web-inf-classes,但是因为我没有部署WAR,所以我更喜欢应用程序包,我们目前正在使用但仍然存在上述问题... ??谢谢!

1 回答

  • 4

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

    你已经知道这是真的,因为你所采取的方法会给你带来麻烦 .

    以您的方式执行此操作的唯一理由是尝试通过不在多个域中复制JAR来节省一些磁盘空间 . 我说磁盘空间很便宜,并且一直在变得越来越便宜 . 常见的JAR意味着常见的依赖关系,并且您不希望强制WebLogic实例上的每个域都必须升级JAR,因为一个公民需要它 .

    从服务器引导程序中删除JAR并复制每个EAR中所需的JAR . 制作每个EAR,每个域独立于其他域 .

    更新:

    你需要得到自己的服务器 .

    或者将<prefer-web-inf-classes>标记添加到您的配置中 .

    有关详细信息,请参阅this .

相关问题