2

我的商店已经运行 Oracle 的应用服务器好几年了。因此,在我们了解得更清楚之前,我们已经制定了将应用程序配置文件存储在 WAR 文件之外的规范,并且使用特定于 Oracle 的部署描述符将特定于应用程序的配置目录添加到每个应用程序中。这个部署描述符允许我们在应用层添加类路径元素,而不必在 WAR 中包含所有依赖项。

现在我们面临升级到 WebLogic 10.3 的问题,我需要为依赖外部配置的应用程序寻找替代方案。

WebLogic 中有没有办法在应用程序级别向类加载器添加外部 jar 或目录?我已经找到了将它们添加到系统类加载器的方法,但我更愿意将它们添加到应用程序级别,以避免在修改部署描述符之外重新处理应用程序。

在 WebLogic 10 中这样的事情是可能的吗?

4

3 回答 3

5

经过进一步研究,我们了解了 WebLogic 的Generic File Loading Overrides功能。

此功能允许我们为我们的应用程序使用部署计划并为应用程序指定一个“config-root”。在 config-root 中,我们可以创建一个名为“AppFileOverrides”的目录并覆盖 WEB-INF/classes 或 WEB-INF/lib 目录中的任何文件。

此功能通过在 Web 应用程序类加载器前面注入一个类加载器来工作,因此从类路径加载的任何资源都将在此类加载器中找到,然后再捆绑到 Web 应用程序存档中。

使用这个特性,我们可以添加war文件中根本不存在的配置文件(理论上,类)。因此,我们能够模仿将配置文件保存在战争之外的功能。

展望未来,我鼓励我们的开发人员将配置包含在 war 文件中,但这对于遗留应用程序和我们需要更改给定部署目标的配置的情况(开发与生产)非常有效

于 2010-10-01T20:05:18.020 回答
1

使用共享库的部署可以引用外部 jar。

粗略地说,外部 jar 应该作为库“部署”。然后可以使用 library-ref 描述符从应用程序的 weblogic-application.xml 中引用它们。

请参阅此文档

不过,我认为除了使用系统类路径之外,您无法提供外部目录/配置文件。

于 2009-11-10T12:13:38.237 回答
0

据我所知,这对于 Weblogic 是不可能的。外部配置文件确实需要添加到系统类路径中。您可以稍微调整类加载器(请参阅过滤加载顺序),但没有任何东西允许在“应用程序级别”添加依赖项,例如 OAS。为此,如果上述方案不是一个选项,您将不得不运行单独的域。

于 2009-10-22T21:21:12.767 回答