亲宝软件园·资讯

展开

SpringBoot打包war包无法运行

Smile_X 人气:1

现实的情况下遇见过该问题刚好记录一下!

SpringBoot项目打包

首先默认创建的maven springBoot项目进行代码的clean 和 install进行项目打包的时候默认是使用jar 包的形式进行打包的,如果需要进行war 包打包部署的话就需要修改相应的 数据内容了

jar 包 和 tomcat 包

启动脚本示例:

nohup /opt/jdk8/bin/java -server -Xms4G -Xmx4G -XX:MaxMetaspaceSize=256m -Xmn1G -XX:SurvivorRatio=6 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled  -jar /opt/api/xx.jar --spring.profiles.active=prod > /opt/logs/xx.out 2>&1 &

war启动的时候将war包丢到相应tomcat webapps 路径下面就行

cd /tomcat/bin 
chmod -x *.sh
sh catalina.sh run

对于war包来说 可能对于一些变化大的包便于维护 比如前后端 不分离的项目如果临时需要改部分页面以及配置信息可以临时修改而不用全部项目打包升级。

实际问题及解决方式

问题

在实际开发过程中使用的就是springboot项目开发然后并且选择的的打包方式上也是使用了war的模式但是在实际打算提交测试的时候发现war打出来之后在tomcat中运行是存在问题的 就是容器启动了但是相应的服务却没办法使用

解决方法

<packaging>war</packaging>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>
@SpringBootApplication
@MapperScan("com.smile.ssm.dao")
@EnableScheduling
@EnableAsync
public class HisApplication extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(HisApplication.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(HisApplication.class, args);
        System.out.println("******************SSM project start success !!!***********************");
    }
}
<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-servlet-api -->
<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-servlet-api</artifactId>
    <version>8.5.70</version>
</dependency>

end

加载全部内容

相关教程
猜你喜欢
用户评论