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

使用Jenkins将Spring Boot WAR部署到Tomcat

缑勇锐
2023-03-14

我有一个Spring Boot Java应用程序,我已经按照教程进行了设置,以便构建一个WAR。我正试图使用Jenkins将这个WAR文件部署到远程Tomcat 7服务器。当我告诉Jenkins构建和部署应用程序时,登录Jenkins表明一切都是成功的。如果我登录到托管Tomcat的远程服务器,我可以看到WAR被复制到服务器。如果我查看日志文件,它会显示以下内容:

INFO: Manager: list: Listing contexts for virtual host 'localhost'
Jun 03, 2016 10:17:10 PM org.apache.catalina.core.ApplicationContext log
INFO: Manager: undeploy: Undeploying web application at '/webapp'
Jun 03, 2016 10:17:11 PM org.apache.catalina.core.ApplicationContext log
INFO: Manager: deploy: Deploying web application '/webapp'
Jun 03, 2016 10:17:11 PM org.apache.catalina.core.ApplicationContext log
INFO: Manager: Uploading WAR file to /var/lib/tomcat7/webapps/webapp.war
Jun 03, 2016 10:17:19 PM org.apache.catalina.core.ApplicationContext log
INFO: 1 Spring WebApplicationInitializers detected on classpath

如果我进入tomcat管理器应用程序,它会显示webapp已部署并正在运行。但是如果我单击上下文路径的链接,我会得到一个404。我无法弄清楚为什么这不起作用。

这是我的身材。gradle文件,我正在运行bootRepackage命令来生成WAR:

buildscript {
    ext {
        springBootVersion = '1.3.5.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

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

war {
    baseName = 'web'
    version = '1.0.1'
}
sourceCompatibility = 1.8
targetCompatibility = 1.8

repositories {
    mavenCentral()
}

configurations {
    providedRuntime
}

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web:1.3.3.RELEASE")
    compile('com.amazonaws:aws-java-sdk:+')
    compile('org.springframework.boot:spring-boot-starter-data-jpa')
    compile('mysql:mysql-connector-java')
    compile('org.springframework.boot:spring-boot-starter-thymeleaf')
    providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

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

共有1个答案

叶俊郎
2023-03-14

所以我现在觉得有点傻,但问题是Jenkins是用Java 1.8构建的,而我服务器上的Tomcat是用Java 1.7运行的。我在[code>/etc/default/tomcat7]编辑了这个文件,并添加了“JAVA\u HOME=”。重新启动Tomcat,瞧,它像冠军一样工作。

有点令人沮丧,因为任何日志中都没有表明这是一个问题。尽管返回404,但一切都假装正常。

 类似资料:
  • 问题内容: Docker新手在这里。 我已经设置了docker容器来运行一个简单的Node JS应用程序。 假设我有一个新版本的应用程序(例如 1.1 ),必须由Jenkins CI进行部署。在这里,我对Jenkins CI到底应该做什么应该有所了解: 应该关闭并删除旧容器( 1.0 )并启动新实例 1.1 吗? 要么 应该进入当前运行的容器并仅更新代码吗? 问题答案: 使用CI / CD工具(如

  • 问题内容: 我们在项目中使用Jenkins在开发环境上进行构建和部署。我已经在jenkins中使用maven成功创建了一个战争文件,现在我必须创建另一个作业才能将该战争文件部署到weblogic服务器中。 但是,我不知道在jenkins中配置此作业所需的步骤。仅仅调用一个maven deploy命令就可以了吗?有人可以告诉我使用jenkins将war文件部署到weblogic 10.3.5中需要采

  • 问题内容: 我在装有Tomcat 8的同一服务器上运行Jenkins 1.6(并且也尝试使用Jenkins 2.0)。我需要将Maven多模块应用程序部署到Tomcat Web应用程序。它有两个必须部署的子模块中的war文件。Deploy插件最多支持Tomcat 7,并且工作正常。但是,问题是我需要使用Tomcat 8,因为我的Web应用程序无法在Tomcat 7上运行。是否可以将War文件从Je

  • 问题内容: 我一直在使用Jenkins / Hudson CI来部署.NET网站项目。我一直在使用MSbuild插件来构建我的项目,然后使用xcopy将其复制到服务器上。 我注意到如果我在Visual Studio中 使用发布功能,则会得到一组不同的文件。我已经完成了配置转换,但最终得到了所有.cs文件,并且winmerge比较显示了二进制文件是不同的。 因此,我想让Jenkins像发布功能一样工

  • 这是我的配置:在这里输入图像描述 并且有控制台输出: 构建成功总时间:7秒错误:步骤“Deploy War/EAR to a Container”由于异常而中止:java.io.ioException:预期Ant GLOB模式,但看到“/home/zhaowz/.jenkins/jobs/huamei-farm-web/workspace/BUILD/huamei.war”。有关hudson.fi

  • 我试图将spring boot应用程序部署到AWS EC2实例中。我看到了很多博客和教程,完整地解释了部署过程,这是可以理解的。我正在努力如何在jenkins中进行持续的部署或交付,这是spring boot、app名称或jar文件名更改的主要功能。 这启动我的服务器完美,工作良好… 这里,我的疑问是start.sh,我使用的是相同的jar文件名,所以它工作得很好,但是在生产中,随着版本的变化,j