SpringBoot简单(登录/显示/登出)工程下载 附带打包成ROOT.war文件并发布到tomcat里
下载地址:https://files.cnblogs.com/files/xiandedanteng/SessionShare20191226-1.zip
之前的工程仅能在Eclispe里跑起来,要把它放到Tomcat的webapp目录下发布,还要一些配置。
首先启动类需要修改如下:
package com.hy.csvdld; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @SpringBootApplication public class MmSpringWebApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(MmSpringWebApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(MmSpringWebApplication.class); } }
上面红色部分是新加的,大家注意调整。
其次pom.xml也需要修改增加一些内容:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> ... <name>MMSpringWeb</name> <description>Demo project for Spring Boot</description> <packaging>war</packaging> ... <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <finalName>ROOT</finalName> </build> </project>
上面蓝色部分,第一个war表示打包成war文件,第二个ROOT表示打包后的文件名。这样设置后,打包后的文件是ROOT.war
接下来就是打包,右键点击工程->Run->Maven install就行,在控制台里能看到进度。
打包完毕后,到工程所在目录下会出现一个target目录,里面的ROOT.war就是打好包的war文件。
接下来,到tomcat目录下的webapps目录,删除或者移走原来的ROOT目录,把打包出来的ROOT.war放入,然后打开控制台,进入tomcat\bin目录,执行startu.bat,这时会弹出一个新的控制台窗口,里面能看到springboot启动的banner,这个新窗口是带Java图标的,和启动它的窗口容易区别开来。
接下来,在浏览器直接输入localhost:8080/就能访问这个app了。
之所以要打包成ROOT.war,并删除tomcat\webapps下原有的ROOT目录,是因为不这样做,就只能用localhost:8080/appname的方式访问应用,再之后的跳转,很容易出现404或者500错误,要把Controller中的@RequestMapping中的path和html的path都修改得正确是一件吃力不讨好的事情,不容易改,或者说我目前还未掌握修改正确的方法。
如果不想把工程打包成ROOT.war,还有另一种方法,能就是修改tomcat/conf/server.xml文件,将原有的:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
修改成:
<Host name="localhost" appBase="" unpackWARs="true" autoDeploy="true"> <Context docBase="webapps/sessionshare" path="" reloadable="true" source="org.eclipse.jst.jee.server:sessionshare"/>
其中,appBase中值被置空了,并增加了一行,sessionshare是工程名。这样,我把finalName改成sessionshare,然后把打包完成的sessionshare.war放到tomcat/webapps下也行,只是这种方法也需要删除tomcat/webapps下原有的ROOT目录。
当然这两种方法都不完美,如果要发布多个app该怎么办呢?但目前一时也没辙,之后留待日后处理。
参考资料:https://www.cnblogs.com/huaixiaonian/p/10521460.html 在此感谢作者的无私分享
--END-- 2019-12-26 18:23
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2017-12-26 X5平方速算法的证明