springboot项目运行在tomcat7上

joimages      2022-05-19     780

关键词:

SpringBoot 项目如何打成 war 包

SpringBoot项目的默认打包方式是将工程打包成为一个 jar 包。部分情况下,我们需要将项目打包成一个 war 包,以方便我们将工程部署在 tomcat 上运行。

那如何将 SpringBoot 项目打包成一个 war 包呢?

pom 文件修改

修改打包方式。由于 SpringBoot 的默认打包方式将其打包成 jar 包,所以创建出来的项目的 pom是没有特殊声明 packaging 的元素。所以首先要在 pom 坐标处增加<packaging>war</packaging>的设置。

因为使用的 SpringBoot,而且选中了 web的 start,其内置 tomcat服务,但是我们这里又需要手动将其部署到 tomcat 上,所以要将 spring-boot-start-web 中移除对spring-boot-start-tomcat 的依赖传递,所以pom 文件中需要这样修改。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <!-- 移除嵌入式tomcat插件 -->
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

然后 pom 中添加 servlet-api 的依赖。下面有两种方法,可以任选其中一个

方法一:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>

方法二:

<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-servlet-api</artifactId>
    <version>8.0.36</version>
    <scope>provided</scope>
</dependency>

最后将 pom 文件中元素中添加元素并赋值为你需要的打包的名字,比如我这边的手头的这个例子,我希望打出来的 war 包名字为 dataServer.war。所以我的设置是这样的。

<finalName>dataServer</finalName>

到目前为止所有的pom 修改就已经完成了,现在需要修改启动类,并重写初始化方法

重写初始化方法

我们平常用main方法启动的方式,都有一个App的启动类,代码如下:

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

我们需要类似于web.xml的配置方式来启动spring上下文了,在Application类的同级添加一个SpringBootStartApplication类,其代码如下:

/**
 * 修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法
 */
public class SpringBootStartApplication extends SpringBootServletInitializer {
 
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        // 注意这里要指向原先用main方法执行的Application启动类
        return builder.sources(Application.class);
    }
}

打包

在项目根目录下(即包含pom.xml的目录),在命令行里输入:
mvn clean package即可, 等待打包完成,出现[INFO] BUILD SUCCESS即为打包成功。

如何在 tomcat8 上运行

把target目录下的war包放到tomcat的webapps目录下,启动tomcat,即可自动解压部署。
最后在浏览器中输入http://localhost:[端口号]/[打包项目名]/即可浏览。

我再 tomcat8 上运行没有发现什么问题,然后我将程序部署到了服务器上却出现了问题。服务器上 的 tomcat 版本是 7.所以我在本地重新部署了一套 tomcat7 的运行环境用来测试,结果却意外发现了大问题。

如何在 tomcat7 上运行

在 tomcat7 上运行打好的包的时候出现了这样的一个错误。我曾在Stack Overflow 上进行查找,找到一个比较靠谱的解释。大致是说,之所以在 tomcat8 上可以运行,而 tomcat7 上不能运行,是因为 tomcat8中已经包含 el-api 3.0而 tomcat7 上只有el-api 2.2。

解决方法也说的是五花八门,我尝试过很多种方法,最后是一个意想不到的方法帮助我解决了这个问题。

看了网上所说,把tomcat/lib下的el-api.jar拷贝到D:\xxx\jdk1.8.0_121\jre\lib\ext发现还是一样的异常;反编译el-api的确没有ElManager,在el-api3.0才引入.so ,下载el-api3.0.jar,放到jdk或者只放tomcat/lib都可;(直接使用tomcat8也可解决)

然后我将本地 maven 仓库中的el-api3.0 copy 到了 tomcat7 的 lib 路径下,然后将文件放进去,再次使用 catalina 执行 tomcat 没有报错了。真的是坑。。。

eclipse上运行springboot项目突然jrebel不启动没反应了

...l,在运行时配置一下即可     2、如果非springboot项目,在tomcat上运行的,则在项目名上右键->runas-&g 查看详情

如何在weblogic上运行springboot

参考技术ASpringBoot是Spring产品中一个新的子项目,致力于简便快捷地搭建基于Spring的独立可运行的应用。大多数的SpringBoot应用只需要非常少的Spring配置。你能够使用SpringBoot创建Java应用并通过java-jar来运行或者创建传统的通过war... 查看详情

springboot项目打包成war并在tomcat上运行的步骤

把spring-boot项目按照平常的web项目一样发布到tomcat容器下一、修改打包形式在pom.xml里设置 <packaging>war</packaging>二、移除嵌入式tomcat插件在pom.xml里找到spring-boot-starter-web依赖节点,在其中添加如下代码,<dependency>&... 查看详情

eastcom——eclipse中运行vtmserver项目

1,vtmserver项目必须在tomcat7上运行. 2,在Eclipse中vtmserver的截图3,在eclipse中配置一个tomcat7并将vtmserver加入其中 4,在eclipse中启动该tomcat即可将vtmserver运行起来,正确的日志如下:5,在浏览器中访问:  遇到的问题... 查看详情

springboot项目上有个红叉,且ecplise没有自动编译项目,运行提示“错误:找不到或无法加载主类”

近期在做springboot项目,发现springboot项目上有个红叉但找不到哪个类报错,ecplise没有把项目自动编译,运行还提示“错误:找不到或无法加载主类”,进入工作空间“项目 argetclasses”,发现项目java类根本没有编译,尝试各种方式... 查看详情

基于springboot实现作业管理系统

项目编码:YMKJ001环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:... 查看详情

在eclipse中的tomcat上运行GWT

...:2013-04-2813:22:40【问题描述】:我正在尝试在Eclipse中的Tomcat7服务器上运行GWT项目。我安装了Tomcat,我可以毫无问题地在Tomcat上运行其他Web应用程序。现在我使用以下命令为eclipse生成了一个gwtmaven项目,并将其作为maven项目导入... 查看详情

springboot项目打包成jar运行2种方式

最近公司有个项目需要移植到SpringBoot框架上,项目里面又有许多第三方jar包,在linux服务器上最方便的就是用jar的方式来运行SpringBoot项目了,因此我研究了2种打jar包的方式,记录如下,供大家参考:1、通过maven插件,将所有依... 查看详情

使用 SSL / HTTPS 的 Spring Boot 项目无法在 AWS Elastic Beanstalk 上运行

】使用SSL/HTTPS的SpringBoot项目无法在AWSElasticBeanstalk上运行【英文标题】:SpringBootprojectwithSSL/HTTPSnotworkingonAWSElasticBeanstalk【发布时间】:2019-03-0113:42:42【问题描述】:我的SpringBoot项目在https/ssl上运行良好,在本地服务时使用p12证... 查看详情

Websockets Tomcat 7 在现有项目中不起作用

】WebsocketsTomcat7在现有项目中不起作用【英文标题】:WebsocketsTomcat7doesnotworkinexistingproject【发布时间】:2016-05-1814:35:15【问题描述】:我尝试在Tomcat6上运行的Java项目中运行websocket服务器。我已经设置了一个Tomcat7服务器,现在正... 查看详情

使用idea将springboot项目打war包部署到tomcat服务器上运行步骤详解(代码片段)

...到需要打war包部署到tomcat上运行的情景。   1.创建一个springboot项目,最原始的目录结构:  2.在pom文件中添加以下代码:使用packaging标签指定打包的方式位war包,添加build标签,指定一个上下文名,相当... 查看详情

解决intelljidea不识别springboot项目

...销。避免在build的时候报错。编译之后发现IDEA突然不识别SpringBoot项目。在网上查询了一下,解决方法如下。按ctrl+alt+shift+s进入ProjectStructure界面。进入Modules选项页选择spring的标准,如果没有的话点击+号添加,然后设置SpringBoot配... 查看详情

基于springboot实现田径运动会管理系统

项目编号:BS-XX-081环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境ÿ... 查看详情

springboot多模块在tomcat上运行

参考技术A我们项目一般有dao层,service层,controller层,复杂一点的项目有前台系统controller和后台系统controller,如果把它们全看成是模块的话,模块之间的关系如图显示。(示例项目为演示方便,省略了service模块)其中模块的身... 查看详情

项目部署(代码片段)

一、手工部署项目(1)在IDEAZ中开发SpringBoot项目并打成jar包(2)将jar包上传到Linux服务器  mkdir/usr/local/app      创建目录,将项目jar包放到此目录(3)启动SpringBoot程序  java-jar[jar包名] (4)改为后台运行SpringBoo... 查看详情

如何在eclipse helios上运行tomcat 7

】如何在eclipsehelios上运行tomcat7【英文标题】:Howtoruntomcat7oneclipsehelios【发布时间】:2011-10-1916:06:37【问题描述】:我有tomcat7.0.22和eclipseHelios3.6.1要安装哪些WTP软件包,以便tomcat7可以在Helios3.6.1上正常工作以下网址有很多包:http... 查看详情

Tomcat7不会在ubuntu上启动(全新安装),权限被拒绝[关闭]

】Tomcat7不会在ubuntu上启动(全新安装),权限被拒绝[关闭]【英文标题】:Tomcat7won\'tstartuponubuntu(cleaninstall),permissiondenied[closed]【发布时间】:2014-11-0108:40:06【问题描述】:我有一个干净的ubuntu安装(14)并尝试运行Tomcat7。我已经通... 查看详情

第二章:springboot整合jsp(打jar针对多模块项目)

...技术A修改以前springmvc+jsp老项目,需要重新翻新,要求用springboot+jsp打jar,遇到比较多坑,idea中运行正常启动,打成jar运行各种报404,因此总结一下。优点是将页面从项目中分离出来,解决了改动页面需要重新打包整个项目的尴... 查看详情