首页 > 技术文章 > spring boot 项目打成war,丢入tomcat独立运行

ixixi 2019-10-17 10:39 原文

小插曲:通过cmd运行startup.bat,cmd界面显示乱码

解决方法:进入tomcat目录,conf文件夹,用编辑器打开logging.properties

将java.util.logging.ConsoleHandler.encoding = UTF-8 改为 GBK

 

 

 然后就正常显示日志了

 

 

 

下面示例打包war部署发布

首先,为tomcat修改一个独立的端口,防止和其它端口冲突

进入tomcat目录,打开conf文件夹,打开server.xml

三个地方都改下,比较靠谱

原8080,这里改成了8081,特别还加了URIEncoding="utf-8"编码格式

<!-- A "Connector" represents an endpoint by which requests are received
         and responses are returned. Documentation at :
         Java HTTP Connector: /docs/config/http.html
         Java AJP  Connector: /docs/config/ajp.html
         APR (HTTP/AJP) Connector: /docs/apr.html
         Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
    -->
    <Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" 
               URIEncoding="utf-8"/>

 

原8009,这里改成了8091

<!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8091" protocol="AJP/1.3" redirectPort="8443" />

 

这里改成了8092

<Server port="8092" shutdown="SHUTDOWN">

 

工程打成war包,放入tomcat目录webapps文件夹下(注意:如果webapps下附带的小例子过程都删空了,通过IP:端口就访问不到tomcat界面了,报404,不过也可以删除,通过ip:端口/app文件夹名字访问自己的工程)

 

 CMD切到tomcat的bin目录,执行startup.exe

 

 

 

 项目启动后,通过ip:端口/webapps下的过程文件夹名字 访问项目

这里:localhost:8081/demo-0.0.1-SNAPSHOT

 

 

tomcat部署启动就这样了,然后示例下springboot打war包的一些步骤

在pom里添加<packaging>war</packaging>

 

 在pom的web依赖,排除springboot内置tomcat

 

 在springboot入口类同层目录新建一个类

SpringBoot项目必须实现SpringBootServletInitializer接口,覆盖其configure()方法,替代普通入口,才能让外部容器运行war包

 

 

package com.example.demo;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
/**
 * SpringBoot项目必须实现SpringBootServletInitializer接口,覆盖的configure()方法
 * 才能让外部容器运行Spring Boot项目,主要在不用内嵌服务器,将项目打成war包在外部服务器运行的情况
 * 这里才是入口
 * @author kyoxue
 * @date 2019年10月16日
 */
public class ServletInitializer extends SpringBootServletInitializer{

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        // TODO Auto-generated method stub
        return builder.sources(DemoApplication.class);
    }
}

一切准备就绪,右键工程,run as -----  maven clean  ,run as ----- maven install

控制台找到这里:

 

 打开目录,D:\work_maven\com\example\demo\0.0.1-SNAPSHOT\找到demo-0.0.1-SNAPSHOT.war,这个就是打成的war包,丢入tomcat的webapps文件夹下面部署即可。

 

 

 

推荐阅读