代码之家  ›  专栏  ›  技术社区  ›  Andrey Adamovich

EAR的APP-INF/lib中JAR加载的顺序

  •  3
  • Andrey Adamovich  · 技术社区  · 16 年前

    将添加一个MANIFEST。EAR内META-INF目录中具有Class Path属性的MF文件会影响WebLogic 8.1下APP-INF/lib中JAR的加载顺序吗?

    3 回复  |  直到 16 年前
        1
  •  1
  •   Billy Bob Bain    16 年前

    我不相信您可以通过MANIFEST的ClassPath属性控制APP-INF/lib顺序。MF。

    根据客户的不同,我有几种不同的方法。

    1. 将补丁jar添加到WLS的系统类路径中。如果你检查domain/bin/setDomainEnv.sh(或.cmd),应该有预、后、补丁类路径环境变量。您可以尝试在此处将补丁jar添加到类路径中。这使得它可用于所有应用程序,这可能不是您的客户想要的。
        2
  •  0
  •   duffymo    16 年前

    我有两个问题要问你:

    1. 为什么你还在使用WebLogic 8.1?现在已停止支持,当前版本为10.x。您落后了两个版本。这是尚未迁移的遗留应用程序吗?通过升级,您将获得很大的提升,因为您将使用带有-server选项的JDK 5或6。我会推荐它。
    2. 你为什么要关心装货顺序?容器如何加载和管理bean对你的应用程序来说应该无关紧要。

    这听起来不一样,就好像您与服务器JAR发生了冲突。就是这样 prefer-web-inf-classes 为这种情况做准备。你是这个意思吗?

        3
  •  0
  •   Isaac Villanueva    8 年前

    我同意 duffymo

    你不必担心类加载的顺序,如果这是由于冲突的类造成的,你总是可以使用Maven或类似的工具从Jars中排除冲突的类。

    例如,这是一个添加jersey-spring4-jar的非常简单的示例,但我排除了它的依赖项,这样我就可以使用不同版本的spring框架库。

    <dependency>
      <groupId>org.glassfish.jersey.ext</groupId>
      <artifactId>jersey-spring4</artifactId>
      <exclusions>
        <exclusion>
          <artifactId>spring-web</artifactId>
          <groupId>org.springframework</groupId>
        </exclusion>
        <exclusion>
          <artifactId>spring-aop</artifactId>
          <groupId>org.springframework</groupId>
        </exclusion>
        <exclusion>
          <artifactId>spring-context</artifactId>
          <groupId>org.springframework</groupId>
        </exclusion>
        <exclusion>
          <artifactId>spring-beans</artifactId>
          <groupId>org.springframework</groupId>
        </exclusion>
      </exclusions>
    </dependency>