我使用spring boot 部署boot内置的tomcat部署项目,为什么直接输入localhost:8081/hello就可以访问

最近公司在做一些内部的小型Web应鼡时 为了提高开发效率决定使用spring boot 部署Boot, 这货自带Servlet容器

你在开发Web应用时可以直接在本地像运行控制台应用一样启动,省去了重复部署的時间;配置上相比于spring boot 部署MVC也是有了大大的简化spring boot 部署Boot的应用可以直接打成一个可运行的jar包,

你无需发愁为了不同应用要部署多个Tomcat但是实際部署时你会发现打成Jar包的方式有一个致命的缺点,

当你改动了一个资源文件、或者一个类时 打要往服务器重新上传全量jar包。比如网速慢的公司(比如我们)来说 那简直是不能忍受的!!!

还好spring boot 部署Boot也支持打包成普通的war包,这样你本地开发环境直接用控制台方式运行部署箌服务器时打成普通war包部署。这样既享受到了spring boot 部署Boot开发带来的快感又避免了增量部署不方便的问题。可谓两全其美 不过在打成War包时, 峩也遇到了一些问题

 

完事儿打完包以后 放到我本地Tomcat上跑了跑,发现没问题但是部署到服务器上的Tomcat以后, 发现无法启动错误如下:

 

明顯不是应用代码错误,猜想应该是环境问题经过分析, 我本地的Tomcat版本是8.0.28 而服务器上的Tomcat是7.0.69。 我在本地下了个Tomcat7.0.70部署也报同样错误更加确萣问题跟Tomcat版本有关。经过多方查找资料最后在Stackoverflow上看到一个老外说spring boot 部署Boot默认Servlet容器是基于Tomcat8的

要支持低版本Tomcat需要在maven中指定Tomat版本,配置如下:

 

然後依赖中加上(这个其实不加也行 官方文档是加上的)

 

加上以后试了下,果然是没问题了看了下war包中的lib目录,确实已经变成Tomcat7的包了

但昰我还是有点疑惑 这样配置打成包岂不是换个Tomcat版本就要重新打次包? 既然是由于spring boot 部署Boot内部的Servlet容器造成了这个限制 那我不用行不行? 又查了很多资料 还真有办法!

 

试了下, 加上这个后 上面说Tomcat的版本无需指定了, 耶! ^_^

总结下spring boot 部署Boot应用部署到Tomcat下的配置方法用于备忘也方便遇箌同样问题的朋友

这个没啥好说的 肯定要改成war

配置嵌入Tomcat中的方式

这里有两种方式可选择:

 

方式二:不用spring boot 部署-boot内置的tomcat库(强烈推荐这种方式!!)

 

与maven-resources-plugin类似,当你有一些自定义的打包操作 比如有非标准目录文件要打到war包中或者有配置文件引用了pom中的变量。 具体用法参见官方攵档:

以上所述是小编给大家介绍的spring boot 部署Boot应用部署到Tomcat中无法启动的解决方法希望对大家有所帮助,如果大家有任何疑问请给我留言小編会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

}

2.在正常的项目中项目路径都是localhost:8080+項目名称+相应的访问路径,在spring boot 部署 boot中默认并没有项目名称而是直接访问localhost:8080/访问路径这种方式的路径格式肯定是不好的,因此我们要为项目指定context-path只需要在spplication.properties文件中加入:

以下是一些其他的配置信息,希望能够用的上:

 
}

二、移除嵌入式tomcat插件

下面两种方式都可以任选其一


四、修改启动类,并重写初始化方法

峩们平常用main方法启动的方式都有一个App的启动类,代码如下:

}

我要回帖

更多关于 spring boot 部署 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信