Weblogic EAR类加载

时间:2009-08-25 01:19:50

标签: java weblogic classpath

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

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

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

到目前为止,推荐使用了偏好-web-inf-classes但是不能正常工作,因为我没有部署WAR,也更喜欢 - 应用程序包是我们目前正在使用但仍然存在上述问题......不再建议吗?谢谢!

1 个答案:

答案 0 :(得分:4)

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

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

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

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

更新:

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

或添加< prefer-web-inf-classes>标记到您的配置。

详情请咨询this