小插曲:通过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"编码格式
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8"/>
原8009,这里改成了8091
<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里添加
在pom的web依赖,排除springboot内置tomcat
在springboot入口类同层目录新建一个类
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文件夹下面部署即可。