前言
首先给大家来讲一个我们遇到的一个奇怪的问题:
- 我的一个springboot项目,用mvn install打包成jar,换一台有jdk的机器就直接可以用java -jar
项目名.jar的方式运行,没任何问题,为什么这里不需要tomcat也可以运行了? - 然后我打包成war放进tomcat运行,发现端口号变成tomcat默认的8080(我在server.port中设置端口8090)项目名称也必须加上了。
也就是说我在原来的机器的IDEA中运行,项目接口地址为 ip:8090/listall,打包放进另一台机器的tomcat就变成了ip:8080/项目名/listall。这又是为什么呢?
- 通过jar运行实际上是启动了内置的tomcat,所以用的是应用的配置文件中的端口
- 直接部署到tomcat之后,内置的tomcat就不会启用,所以相关配置就以安装的tomcat为准,与应用的配置文件就没有关系了
哎,现在学编程的基本都不会教历史了,也没人有兴趣去钻研。
总体来说吧,很多年前,Sun 还在世的那个年代,在度过了早期用 C++写 Html 解析器的蛮荒时期后,有一批最早的脚本程序进入了 cgi 时代,此时的 Sun 决定进军这个领域,为了以示区别并显得自己高大上,于是研发了 servlet 标准,搞出了最早的 jsp。并给自己起了个高大上的称号 JavaEE ( Java 企业级应用标准,其实不就是一堆服务器以 http 提供服务吗,吹逼)。
既然是企业级标准那自然得有自己的服务器标准。于是 S