我的目标平台是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
?
答案 0 :(得分:0)
这是一种短视的做法。
Weblogic的概念为Shared JEE Libraries(example)。简而言之,您向MANIFEST.MF添加额外的行并以不同方式配置jar,然后您可以使用weblogic-application.xml
或其他任何内容在其他应用程序中引用它。
重点是你可以在不重新启动服务器的情况下升级库(前提是你给它一个类似1.1
的版本(上次我将其命名为1.1.1
时出现错误 - 它需要能够将其转换为浮点数以无缝升级))。
如果您只想包含一些库,但不在应用外部共享它们,那么只需指定正确的<prefer-application-packages>
或< prefer-web-inf-classes>
元素,具体取决于您是否拥有EAR或WAR。