【问题标题】:What happens behind the scenes of deploying a Spring MVC application to tomcat outside of eclipse?在 Eclipse 之外将 Spring MVC 应用程序部署到 tomcat 的幕后会发生什么?
【发布时间】:2013-10-02 15:40:16
【问题描述】:

我猜想使用像 eclipse 这样很棒的 IDE 的一个缺点是你错过了应用程序幕后发生的事情的重点。我是一名 ruby​​ 开发人员,所以不是 java 老手。所以我一直在用java编写一个项目,并为IOC和MVC使用spring框架。当我在 Eclipse 中选择在服务器上运行时,有人可以向我解释发生了什么吗?因为最终我会将这个应用程序的杰作部署到 Linux 服务器上。这是我的设置。我在 Eclipse 中使用 Spring MVC 3 和 maven 插件。在 pom.xml 文件中,我有最新的 spring 发布版本、log4j、spring mvc、spring context 等内容。

我一直在使用 Eclipse IDE 中的在服务器上运行的便捷选项在 localhost 上测试我的应用程序。 eclipse 中的服务器配置指向我安装了 tomcat 7 的 tomcat 目录位置。请揭开幕后发生的事情的神秘面纱,以及如果我想在生产服务器上部署此应用程序需要做什么。越详细越好。非常感谢。

【问题讨论】:

    标签: java spring spring-mvc spring-security java-ee-6


    【解决方案1】:

    将网络应用程序部署到 Tomcat 就这么简单(假设安装了 Tomcat)

    1. 将您的应用程序捆绑在.warcorrect format 中。
    2. 将生成的.war文件移动到Tomcat安装文件夹的/webapps目录下。
    3. 运行 Tomcat 安装文件夹中的 /bin/startup.[sh|bat] 脚本。

    请注意,您可以执行一些中间步骤来配置部署,例如更改上下文路径。 Go through the Tomcat documentation for details.

    在第 3 步中,Tomcat 会将 .war 的内容提取到与您的 .war 文件同名的 /webapps 文件夹中的目录中。它将使用它作为上下文路径。该脚本本身通过将WEB-INF/[class|lib|...] 与一些Tomcat 库一起放入类路径来启动java 进程。

    所以 Eclipse 基本上会为您完成上述所有步骤。

    【讨论】:

    • 一定是战争吗?
    • @ImtiazAhmad war 代表“Web Archive”,简而言之,是的;确实如此。
    • @ImtiazAhmad Tomcat 将提取战争并在其server.xml 文件中创建一个条目。如果您愿意,您可以手动执行此操作。
    • @SotiriosDelimanolis 不在其server.xml methinks 中。它在conf/Catalina/<serverName>/<applicationName>.xml 中创建一个文件。
    • @BoristheSpider 它可能会把东西放在很多地方。 server.xml 条目仅描述上下文docBasepath。安全的方法是让Tomcat去做。
    【解决方案2】:

    最终,您正在部署一个 Web 应用程序,这意味着您正在将一个 war 文件部署到服务器。不管使用spring之类的框架,struts什么的都行。

    所以 Web 应用程序请求从 web.xml 文件开始。所以对于spring mvc应用程序,您将来自浏览器的所有请求映射到DispatcherServlet,然后这个人负责管理您的应用程序的整个生命周期。 有关 MVC 工作原理的更多详细信息,请参阅 http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/mvc.html

    因此,为了在服务器上部署您的应用程序(战争),首先您必须从源代码创建战争。您可以使用传统方法来使用 java 给定的实用程序,例如在命令提示符下使用 jar,或者您可以使用 ANT、GRADLE、MAVEN 和此类构建工具,以自动方式为您创建战争。 Spring 并没有为你做任何额外的事情。我相信您应该对这些工具的工作原理进行更多研究。 一旦为您准备好战争,您可以简单地转到 tomcat UI,在那里您会找到部署战争的选项。

    希望对你有帮助。

    【讨论】:

    • 你指的是什么tomcat web UI?
    • Tomcat UI 我的意思是 tomcat 管理控制台。
    【解决方案3】:

    所有的大事都发生在两个地方。

    第一个是 Eclipse Package Explorer 根目录中的“Servers”目录。这些是 Eclipse 在创建新服务器实例时(主要)使用的服务器配置文件。

    第二个位于 Eclipse 工作区的 ./metadata/.plugins/org.eclipse.wst.server.core/ 文件系统目录中。这是eclipse实际部署tomcat应用的地方。


    Tomcat Documentation 实际上非常好,有助于解释如何进行部署。仅供参考,我不知道有多少人使用Manager,根据我的经验,大多数人手动部署他们的应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-16
      • 2014-12-25
      • 2012-08-12
      • 2012-11-11
      • 1970-01-01
      • 2020-05-08
      • 1970-01-01
      相关资源
      最近更新 更多