【问题标题】:How to inhibit start of WAR file within EAR file configuratively?如何以配置方式禁止在 EAR 文件中启动 WAR 文件?
【发布时间】:2010-12-12 16:12:00
【问题描述】:

我有一个包含 4 个战争文件的 ear 文件。我们将它们放在一起的主要原因是,启动顺序很重要,从部署的角度来看它更容易(客户只得到一个文件,不必担心哪些版本可以一起使用)。

ear 文件将部署在 4 个不同的系统上,这有点不同,因此在其中两个服务器上,甚至不需要启动一个 war 应用程序。

运行环境为 JBOSS 4.2.2。

因此我的问题是:如果我想通过 properties-service.xml 中定义的属性进行配置,我有哪些选项可以阻止启动 war 文件?

另一个选项,因为应用程序实际上是 spring 应用程序,将阻止启动 ContextLoaderListener,但在这里我也不知道如何通过配置来做到这一点。

【问题讨论】:

    标签: java spring deployment jakarta-ee jboss


    【解决方案1】:

    嵌入在 EAR 文件中的 WAR 文件不会部署为 Web 应用程序,除非它们在 EAR 的 application.xml 部署描述符中定义为模块。如果您使用 JBoss 特定的部署描述符而不是 J2EE 标准描述符,则必须更改那里的配置。

    【讨论】:

      【解决方案2】:

      您可以在 META-INF/application.xml 中添加列表战争

      <application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd" version="5">
      
        <module>
          <web>
            <web-uri>war1.war</web-uri>
             <context-root>/war1</context-root> 
          </web>   
        </module>
        <module>
          <web>
            <web-uri>war2.war</web-uri>
            <context-root>/war2</context-root>
          </web>   
        </module>
      
      
        <library-directory>lib</library-directory>
      
      </application>
      

      未使用的战争中的弹簧上下文不会启动。每次战争您将获得一个春季应用程序上下文。 (除非您使用共享上下文)

      【讨论】:

        猜你喜欢
        • 2019-09-19
        • 2010-12-08
        • 2011-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-20
        • 2014-09-15
        • 2014-08-20
        相关资源
        最近更新 更多