【问题标题】:Add items to application (WAR) classpath in WebLogic 10?在 WebLogic 10 中将项目添加到应用程序 (WAR) 类路径?
【发布时间】:2010-12-09 05:44:09
【问题描述】:

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

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

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

这样的事情在 WebLogic 10 中是否可行?

【问题讨论】:

    标签: weblogic classpath weblogic-10.x


    【解决方案1】:

    据我所知,Weblogic 无法做到这一点。外部配置文件确实需要添加到system classpath。您可以稍微调整一下类加载器(请参阅filteringloading order),但没有任何东西允许在“应用程序级别”添加依赖项,例如 OAS。为此,如果上述方案不可行,您将不得不运行单独的域。

    【讨论】:

      【解决方案2】:

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

      大致而言,外部 jar 应该作为库“部署”。然后可以使用 library-ref 描述符从应用的 weblogic-application.xml 中引用它们。

      请参阅此doc

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

      【讨论】:

        【解决方案3】:

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

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

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-25
          • 2023-03-17
          • 1970-01-01
          • 1970-01-01
          • 2012-05-15
          • 1970-01-01
          相关资源
          最近更新 更多