【问题标题】:Websphere EAR module dependency managementWebsphere EAR 模块依赖管理
【发布时间】:2014-01-08 01:08:18
【问题描述】:

我有一个具有以下结构的 EAR

myWar1.war WEB-INF/lib/myJar.jar

myWar2.war

我希望 myWar2.war 能够加载 myJar.jar。 在 JBoss 7/EAP 6.x 中,您可以在 jboss-deployment-structure.xml 中添加这样的依赖项

<sub-deployment name="myWar2.war">
    <dependencies>
         <module name="deployment.myEar.ear.myWar1.war" />
    </dependencies>
</sub-deployment>

我不知道 WAS 等价物。我尝试在 myWar2.war 的清单文件中添加一个类路径条目,但 WAS 似乎忽略了它。 如果我有一个清单条目,例如

类路径:myWar1.war/WEB-INF myWar1.war/WEB-INF/lib myWar1.war/WEB-INF/lib/myJar.jar

myWar1.war/WEB-INF 和 myWar1.war/WEB-INF/lib 添加到模块类路径,但 myWar1.war/WEB-INF/lib/myJar.jar 没有

我知道我可以将 jar 转换为 EAR 根级别的实用程序 jar,但我不想这样做。这是一个成熟的应用程序(第二次战争是新的)我不想过多地弄乱它。如果我可以使用理想的类路径条目解决依赖关系。

【问题讨论】:

  • 我实际上预计清单类路径是相对于当前 WAR 文件的根目录的,所以我很惊讶前两个对你有用。 (我想知道您是否可能需要像 ../myWar1.war 一样尝试。)前两个似乎是一个错误,但不是第三个。什么版本的 WebSphere,什么修复级别?
  • @dbreaux Class-Path 总是相对于包含的存档,所以我相信语法是正确的,但这只是不支持。
  • 使用 WAS 8.5 FP2 尝试 ../ 也不起作用

标签: jboss7.x classloader dependency-management ear websphere-8


【解决方案1】:

这是不可能的。 WEB-INF/lib 中的 JAR 被认为是 myWar1.war 的本地类路径,您不能从另一个 WAR 引用 JAR。您唯一的选择是将 JAR 移至 EAR(lib/ 目录,或移至另一个目录并将 Class-Path 添加到两个 WAR 的 META-INF/MANIFEST.MF)。

【讨论】:

    猜你喜欢
    • 2011-02-20
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    • 2012-07-19
    相关资源
    最近更新 更多