2009-10-22 52 views
2

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

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

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

在WebLogic 10中可以这样做吗?

回答

0

据我所知,这是Weblogic无法实现的。外部配置文件确实需要添加到system classpath。您可以稍微调整一下类加载器(请参阅filteringloading order),但没有任何内容允许在OAS的“应用程序级别”添加依赖项。为此,如果上述场景不是选项,则必须运行分离的域。

1

可以通过使用共享库的部署来引用外部罐子。

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

参考此doc

虽然,我不认为你可以提供外部目录/配置文件,而不是通过使用系统类路径。

5

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

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

该功能通过在Web Application类加载器之前注入一个类加载器来实现,因此,在绑定到Web应用程序存档之前,将从类路径加载的任何资源都将在此类加载器中找到。

使用此功能,我们可以添加根本不存在于war文件中的配置文件(理论上讲,类)。因此,我们能够模拟将配置文件保存在战争之外的功能。展望未来,我鼓励我们的开发人员将配置包含在war文件中,但这对于传统应用程序以及需要更改给定部署目标(dev与产品)配置的情况很适用,

相关问题