首先说一下为什么我会遇到这个简单又极其离谱的问题:
最近我准备把我的web项目部署到服务器上,我打算先在自己虚拟机的上的linux系统部署,我看过相关的视频,感觉没啥难度随随便便拿下。
现在大部分项目都是springboot的项目因为boot项目本身内置了tomcat所以打包成jar包以后可以直接在linux运行(要配置有jdk),本身这次部署学习我的目的就是学习,所以我想把所有场景都试一边,然后我就把自己手上的普通web项目尝试部署一下,这不试不知道,一试直接当场去世!
因为普通的web项目本身是没内置tomcat,所以就需要将web项目打包成war然后放在tomcat的webapps然后再运行,运行后我进入tomcat默认的8080页面,到这一步没有问题
但是当我访问我的web页面时发现进不去,我以为是我的默认页面一些东西配置错了,可是我的配置一直没动过,名字也没动过,不管我怎么访问都是404,我害怕一些稀奇古怪的原因所以我把项目的符号都去掉,日志什么的我也检查了都没有问题正常启动。我就去百度和一些技术论坛一直再搜但是大部分人解决办法都是修改server.xml这个方法也许对别人有效,但是不管我怎么改都没用,此时已经陷入僵局了!!!
当一件事他不正常的异常,你就不能用正常想法去思考了(我要开始认真了= = )
在平常的学习中,相信大多人都把重心放在代码的书写上,如何理解业务,理解方法。我同样也是,所以像后来的打包war和jar都是后期完成项目部署到服务器的工作,大家也不会经常去打包项目。今天我去打包war包发现默认打包方式是jar包于是我增加了war的插件并且在上面声明了方式
<!-- pom基本信息-->
<groupId>com.keke</groupId>
<artifactId>graduation-project</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.1</version>
在这里其实这个插件版本一开始报错了很久我一直刷新maven也没用,不知道是不是这个版本出什么问题了,所以后来出现问题我就在想有没有一种可能是插件有问题导致我的war缺少必要文件,但是后来看了一下发现这个插件是没有问题的。然后我就去打包war里去看了,我看了半天发现为什么只有后端properties,xml和class文件而没有前端的web项目和静态jsp页面(这里确实怪我,因为我觉得我的项目不可能有问题所以一直没有查看打包的war文件,最后成小丑)。
现在已经发现问题了,就是前端的文件没有被打包进war。这里我们可以使用maven里的configuration标签,将前端文件指定一下就可以完美解决。
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.3.1</version> <configuration> <!--如果不设置下面的配置将无法打包页面,以及web.xml,造成不能运行--> <!--指定web.xml文件的位置--> <webXml>web\WEB-INF\web.xml</webXml> <!--指定jsp等文件所在位置--> <warSourceDirectory>web</warSourceDirectory> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>7</source> <target>7</target> </configuration> </plugin> </plugins>
总结:
可能这个问题对于很多人来说不算问题,但是他确实折磨了我一天。如果我直接部署springboot项目可能也没有这么多问题了,但是我真的希望大家平常在做东西的时候,尽量做到把所有的东西都碰一下没这样未来你遇到什么样的场景都能对付,也能学到很多东西。还有就是用tomcat部署web项目在学校的时候老师讲过好多次我印象中,但是我没好好听,以至于现在要花更多的时间来解决。如果有人看到这篇文章并且成功帮你解决问题,那我真的很开心!!
接下来的计划:
1.最近家里申请了公网ip,准备用端口映射和ddns实现自己电脑成为服务器(这两天想改一 下光猫桥接然后宽带被我搞没网了,现在我还记得宽带师傅的脸= =),外人可访问
2.没有公网的情况我也想做一下,准备用内网穿透做一下。
3.买个云服务器,部署在上面,先准备手动部署然后再用工具比如宝塔辅助部署
引用
最近看了几个文章很不错,分享给大家。
2.在linux部署中会有防火墙,大家平时要多注意https://blog.csdn.net/zb_3Dmax/article/details/126434754
3.创维系列光猫超级管理密码获取https://www.right.com.cn/forum/thread-8249610-1-1.html