【问题标题】:How to run Spring RESTful project under tomcat 8?如何在tomcat 8下运行Spring RESTful项目?
【发布时间】:2016-09-04 08:32:51
【问题描述】:

我正在关注下一个教程:https://spring.io/guides/gs/rest-service/

我注意到他们不使用 tomcat 来运行他们的项目。他们使用“gradle run”命令来运行它。 是否可以在tomcat下运行那个Spring项目?

另外,我想知道它是否合理。我们是否需要tomcat来运行spring RESTful项目(也许使用“gradle run”命令运行更好)?

我正在使用 Intellij IDEA 和 gradle 3.0

我有下一个 build.gradle 内容:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.0.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'spring-boot'

jar {
    baseName = 'gs-rest-service'
    version =  '0.1.0'
}

repositories {
    jcenter()
    maven { url "http://repo.spring.io/libs-snapshot" }
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
}

教程中的所有课程

【问题讨论】:

  • 只需一步一步完成教程并从您的 IDE 或命令行使用 mvn run:spring-boot 运行项目

标签: spring intellij-idea gradle spring-boot tomcat8


【解决方案1】:

如果您想使用 Spring Boot 提供的嵌入式 Tomcat,您可以使用 spring-boot-starter-web 启动器并使用 spring-boot:run 运行项目。

但是,当您设置 spring-boot-starter-tomcat 时,我认为您想使用外部 Tomcat。

在这里您可以找到用于创建 WAR 的 documentation。您需要使用 WAR gradle 插件,配置您的 Tomcat 实例并像往常一样使用spring-boot:run 运行项目。

如果您使用的是 Gradle,则需要修改 build.gradle 以将 war 插件应用于项目:

应用插件:'war'

该过程的最后一步是确保嵌入式 servlet 容器不会干扰将部署 war 文件的 servlet 容器。为此,您需要将嵌入式 servlet 容器依赖项标记为已提供。

依赖{ // … 提供运行时 'org.springframework.boot:spring-boot-starter-tomcat' // … }

【讨论】:

    【解决方案2】:

    RESTful Web Service 顾名思义是一个运行在Web上的服务(HTTP协议)。如果你想在Web上运行任何应用程序,你需要将它部署在WEB SERVER上。Tomcat是一个Web服务器。是的,你需要 Tomcat((或 JBoss,Websphere,Weblogic,...server)) 来运行 Spring 或任何 RESTful Web 服务。Gradle 是依赖管理工具,它可以帮助您构建所需的可执行文件(如 Web 服务中的 .war /应用程序)。

    【讨论】:

      【解决方案3】:

      我更喜欢使用 Idea 中的 Spring Boot 运行配置来运行 Spring Boot 项目。

      只需创建一个新的运行配置并将Application 指定为主类。更多信息请关注官方documentation

      但是,您也可以在 Tomcat 中运行它。这意味着创建 Tomcat 运行配置并在那里部署由此产生的战争,但这要麻烦得多。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-30
        • 2014-09-25
        • 2013-12-17
        • 2013-07-22
        • 2016-09-17
        • 2013-07-30
        • 1970-01-01
        • 2016-06-01
        相关资源
        最近更新 更多