当前位置: 首页 > 知识库问答 >
问题:

在Tomcat服务器上使用Gradle构建部署Spring应用程序

裴凯定
2023-03-14

我对斯普林和格拉德尔还不熟悉。我试图在Tomcat服务器上使用Gradle构建来部署Spring应用程序。我能够生成war文件,但我没有web。用于映射servlet的xml文件,我没有映射servlet。我有一个主类和配置类。

那么,为了在tomcat上部署我的应用程序,我需要做什么?我找不到一个合适的端到端文章。我经历了这一切http://docs.spring.io/spring-boot/docs/current/reference/html/howto-traditional-deployment.html(本文主要介绍maven存储库/插件,而不是Gradle部分),我只能生成war文件。因为我没有任何网站。xml我不知道如何部署它。谁能帮我一下吗。

   buildscript {
  repositories {
    maven { url "" }
    mavenLocal()
   }
   dependencies {
    classpath("org.springframework.boot:spring-boot-gradle-     plugin:1.0.2.RELEASE")

}
    }

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


 apply plugin: 'war'

war {
baseName = 'abc-service'
version =  '0.1.0'
}


 repositories {
mavenCentral()
maven { url "" }
}

dependencies {
compile("org.springframework:spring-jdbc")
compile("org.springframework:spring-oxm")
compile("org.springframework.boot:spring-boot-starter-web")
compile("org.springframework.boot:spring-boot-starter-data-jpa")
compile("com.fasterxml.jackson.core:jackson-databind")
compile("com.h2database:h2")
compile("mysql:mysql-connector-java:5.1.16")
compile("com.paypal.sdk:rest-api-sdk:1.4.1")

compile("commons-dbcp:commons-dbcp:1.4")
compile("com.sun.mail:javax.mail:1.5.5")
providedRuntime("org.springframework.boot:spring-boot-starter-tomcat");
testCompile("junit:junit")
}

task wrapper(type: Wrapper) {
gradleVersion = '2.1'
 }

以下是我的用户控制器的示例代码

 @Controller
public class AuthenticationController {
@RequestMapping(value =    "/authentication/userLogin")
 public @ResponseBody
 ResponseEntity<Object> user(@RequestParam(value="username", required=true)      String username,
@RequestParam(value="password", required=true) String password,
HttpServletResponse response) {
 return this.authenticationService.loginUser(username, password);
 } 
 @RequestMapping(value = "/authentication/register")
public @ResponseBody
 Response register(@RequestBody String jsonRequest,
HttpServletResponse response) {
 AuthenticationService authenticationService = new AuthenticationService();
 Response registerResponse =     authenticationService.registerUser(jsonRequest);
 return registerResponse;
 }}

共有2个答案

司徒捷
2023-03-14

检查您的spring boot应用程序类是否正在扩展SpringBootServletilizer。如果您的应用程序类没有扩展SpringBootServletilizer,则使用catalina运行tomcat服务器。sh运行脚本将无法工作。您需要使用java-jar/usr/local/tomcat/webapps/app\u名称。战争

洪博艺
2023-03-14

只要定义了控制器,应用程序就可以保持原样。Spring启动的一个最好的功能是,它可以为你做大部分的脏活。你必须定义控制器和url路径作为注释使用@刚需映射("/you-path")。另外,用@RestController注释类。如果你能给出这个应用程序代码的url,如果它有所有必要的定义,我将能够进一步研究它。此外,我会建议一些改变。

将Spring Boot版本更新至最新的1.3。5.

classpath("org.springframework.boot:spring-boot-gradle-plugin:1.3.5.RELEASE")

更新Gradle版本

task wrapper(type: Wrapper) {

    gradleVersion = '2.13'
}

同时更新其他依赖项。然后调用以下命令。

gradle wrapper
./gradlew clean build 

第一行将下载并设置您的项目以使用Gradle 2.13版运行,并将其下载到临时目录,而不考虑计算机中安装的Gradle版本。第二行将使用下载的最新Gradle构建您的项目。然后检查您的

如果要将war文件部署到Tomcat,则应将应用程序构建名称添加到URL以访问映射,因为Tomcat使用war文件的文件名作为上下文路径(请选中此处)。例如:localhost:8080/abc-service-0.1。0-快照/您的映射/。您可以使用baseName属性指定war的命名方式。例如,如果不希望在应用程序URL中使用版本号,则可以将其删除。

war {
   baseName = 'abc-service'
}

或者,您可以在Gradle构建之后,在复制到Tomcat之前,简单地将war文件重命名为您想要的任何根上下文。

我喜欢的另一个Spring启动功能是,您不需要外部Tomcat服务器来部署Spring启动应用程序。它已经有一个嵌入式Tomcat服务器。要利用这个特性,您需要将应用程序构建为jar文件,并作为java应用程序运行。要做到这一点,首先,摆脱行应用插件:'war'。并将您的war配置更改为jar配置。

jar {
   baseName = 'abc-service'
   version =  '0.1.0'
}

并将其作为jar文件运行。

java -jar <project-root-directory>/build/libs/abc-service-0.1.0-SNAPSHOT.jar

如果您使用的是jar文件,那么只需使用您指定的映射即可。例如:localhost:8080/您的映射

基于您的控制器,您对用户(身份验证)的REST调用应该是localhost:8080/authentication/userLogin?username=

@RequestMapping(value = "/authentication/register", method = RequestMethod.POST)
public @ResponseBody Response register(@RequestBody String jsonRequest,
   HttpServletResponse response) {
  AuthenticationService authenticationService = new AuthenticationService();
  Response registerResponse =   authenticationService.registerUser(jsonRequest);
  return registerResponse;
}}

 类似资料:
  • 问题内容: 我已经创建了Spring Boot Web应用程序,但是无法在tomcat上部署Spring Boot Web应用程序WAR文件,并且能够将其作为Java应用程序运行。如何在tomcat上将Spring Boot应用程序作为Web服务运行 我正在使用以下代码。如果可以在tomcat plz上运行,请帮助我使用批注而不使用web.xml和web.xml。 以下代码用于休息控制器 我正在使

  • 下面是rest控制器的代码 下面是我使用的pom.xml

  • 我试图构建一个ReactJS应用程序,我希望在tomcat服务器上托管它。我已经使用命令npm run build,构建已经就绪…我在tomcat服务器中的哪里复制这些文件?我是否需要创建另一个应用程序并将其部署到调用React应用程序的服务器上?

  • 我正试图在tomcat服务器上部署spring boot应用程序,但遇到严重错误[http-nio-8080-exec-5]org.apache.catalina.startup.hostconfig.deploywar部署web应用程序存档时出错

  • pom.xml我有这个用来部署 在设置中。tomcat服务器的xml我有这个 当我试图调用maven deploy时,出现了一个错误: 服务器正在运行。我试图在pom中更改tomcat插件。xml到tomcat7 maven插件,但我得到了相同的错误。据我所知,它正试图将war文件部署到http://localhost:8080/manager/ua/andrfas/SCPI/0.0.1/SCPI

  • 问题内容: 我有一个项目,其中将来自多个来源的数据处理为某些数据结构。程序完成这些结构的构建后,我希望它建立一个服务器,使用户可以手动微调这些结构。我认为使用Spring Boot设置的嵌入式Tomcat服务器上的Spring MVC正是我所需要的。 我想使用Thymeleaf作为查看技术,因此 和 但是,即使在处有一个查看文件,服务器对URL的回复也是 在调试器中单步执行代码后,似乎在某个时候(