可以/应该依赖WebLogic的捆绑模块

时间:2016-10-10 13:53:05

标签: java dependencies weblogic

我的目标平台是WebLogic 12c应用程序服务器。

我有一个耳朵项目,在启动时需要例如org.apache.commons.logging.LogFactory

我知道这个类 - 一个相关的类 - 可以在<WL_HOME>/modules/com.bea.core.apache.commons.logging.api_1.1.1.jar中找到,但默认情况下它不在classspath上。

在这种情况下 - 我应该以某种方式在类路径中使<WL_HOME>/modules中的jar文件可用 - 或者我应该提供我认为合适的jar文件 - 要么捆绑在应用程序中,要么放在{{1 }}?

如果我要使用<WL_HOME>/user_projects/domains/<mydomain>/lib文件夹中的那个 - 如何配置我的域以使其可用?

对我而言,模块文件夹中的jar文件应被视为提供的依赖项似乎是合理的,但到目前为止,我一直无法找到正确的方法来启用它们 - 我一直浏览几个小时的答案: - )

更新: 我知道我可以简单地将它们添加到服务器启动脚本中的CLASSPATH变量 - 我的问题更像是 - 我应该吗?有没有更好的方法 - 或者我应该完全忘记<WL_HOME>/modules

1 个答案:

答案 0 :(得分:0)

这是一种短视的做法。

  • 您需要重启服务器以升级库
  • 服务器上的每个应用都必须在claspath中使用这些库

Weblogic的概念为Shared JEE Librariesexample)。简而言之,您向MANIFEST.MF添加额外的行并以不同方式配置jar,然后您可以使用weblogic-application.xml或其他任何内容在其他应用程序中引用它。

重点是你可以在不重新启动服务器的情况下升级库(前提是你给它一个类似1.1的版本(上次我将其命名为1.1.1时出现错误 - 它需要能够将其转换为浮点数以无缝升级))。

如果您只想包含一些库,但在应用外部共享它们,那么只需指定正确的<prefer-application-packages>< prefer-web-inf-classes>元素,具体取决于您是否拥有EAR或WAR。