【问题标题】:How do I deploy application classes and Spring config files to Tomcat as a single jar?如何将应用程序类和 Spring 配置文件作为单个 jar 部署到 Tomcat?
【发布时间】:2013-08-27 17:53:43
【问题描述】:

目前,我为每个更改创建一个新的 war 文件,但更改仅发生在几个类和 Spring applicationContext.xml 中。 我只想更新一个包含这些类的 jar 文件,而不是不断地重新部署数百个未更改的文件。我可以很容易地创建 jar,但是我应该把它放在哪里,我必须告诉 Spring 在特定的 jar 中查找它的配置文件吗?

【问题讨论】:

  • Madhead 提到了热部署,我不是在问这个。我假设需要重新启动。我只想将类文件和 Spring 配置文件放在一个 jar 中。
  • 然后添加自定义加载器可能会满足您的需求。我已经使用这种方法创建了一个具有模块化结构和插件的 Web 应用程序。

标签: spring-mvc jar tomcat7


【解决方案1】:

如果不使用 JRebel or custom JVM agents 等额外工具,在 Tomcat 中热重新部署代码是完全不可能的。

但是可以通过以下方式模块化您的应用程序:

1: 将 JAR 放入 $TOMCAT_HOME/lib。千万不要这样做,这个解决方案只适用于简单的情况。

2:Tune context.xmlputting Loader in it,如下图:

    <Context antiJARLocking="true" path="/">
        <Loader className="org.apache.catalina.loader.VirtualWebappLoader" virtualClasspath="${catalina.base}/my-app-plugins/*.jar"/>
    </Context>

这将使您能够将 JAR 文件放在 $TOMCAT_HOME/my-app-plugins 中,并将其添加到您的应用程序的类路径中。您应该将context.xml 放入src/main/webapp/META-INF 文件夹(Maven 布局)。但是,仍然需要重新启动。

3:使用OSGi。可能有点矫枉过正。

【讨论】:

    猜你喜欢
    • 2017-02-02
    • 2021-12-28
    • 1970-01-01
    • 2016-01-16
    • 2014-12-25
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 2014-08-17
    相关资源
    最近更新 更多