【问题标题】:Problems with EAR deployment in weblogicweblogic中EAR部署的问题
【发布时间】:2015-06-04 05:11:36
【问题描述】:

我在尝试在 Weblogic 上的企业应用程序中部署 WAR 文件时遇到问题。

Web 应用程序在部署时可以作为单独的 .war 文件正常工作,但是当捆绑在一个 .ear 文件中时,访问每个 Web 应用程序的 WEB-INF/classes 目录中的资源似乎会出现问题。

我有一些需要从该目录访问的资源(例如 log4j.xml 文件)。部署 .ear 文件后,Weblogic 将其解压缩到服务器上的 tmp 位置。一切似乎都是正确的,除了 WEB-INF/classes 目录中没有任何预期的文件。它们存在于 .ear 文件的 .war 文件中。

WEB-INF 和 WEB-INF/lib 目录下的文件,WEB-INF 和 .war 文件的基本目录都存在,但 WEB-INF/classes 目录却是神秘的空。

Weblogic的ClassLoader表示这个目录的路径在classpath上,但是没有文件,显然是找不到的。

有谁知道可能导致这种行为的原因以及如何解决它?

【问题讨论】:

  • 这听起来像是一个构建问题。您如何构建 EAR 文件和组件 WAR 文件?

标签: jakarta-ee weblogic12c


【解决方案1】:

我在头疼之后发现了这一点,这似乎是 application.xml 中的版本有问题,由于某种原因,当设置为“jee5”时,Weblogic (10.3.6) 没有在 WEB 中扩展任何东西- INF/classes 目录。

文件确实存在,但不是从 ear 文件中的 .war 文件中提取的。

切换到“1.4”版本解决了这个问题。

【讨论】:

  • application.xml 文件的version 元素必须是1.45 之一。其他任何事情都是非法的,可能会导致部署失败
  • 确实如此,这似乎是问题所在。我不确定我从哪里得到 jee5 的版本。
【解决方案2】:

为什么因为 weblogic 将所有类捆绑到 _wl_cls_gen.jar 中。所以在类路径中必须从我们的应用程序中提及这个路径目录。

例如:

    classpath.append("." + pathSeperator + path + File.separator +"lib"+ 
    File.separator+"_wl_cls_gen.jar" + pathSeperator);

希望这有帮助。

【讨论】:

    猜你喜欢
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2014-11-13
    相关资源
    最近更新 更多