Spring Boot是使用外部服务器,还是在外部服务器上部署时使用嵌入式服务器作为战争?

问题描述 投票:0回答:2

我知道如果我们想在外部服务器上部署spring boot web应用,我们应该排除嵌入式服务器,但如果我们不排除会发生什么?假设我在jboss外部服务器上部署spring boot war,但我没有排除tomcat服务器,这样的话,spring boot是使用jboss外部服务器,还是仍然使用嵌入式tomcat服务器?

java spring tomcat jboss
2个回答
0
投票

在双重打包的情况下,理想情况下,你应该指定 tomcat 的依赖关系为提供,这样你将在 WEB-INFlib-provided 而不是 WEB-INFlib 下有 tomcat 的依赖关系。因此,对于外部服务器,lib-provided文件夹将被忽略,而对于独立的spring boot应用程序,tomcat的依赖关系将作为嵌入式从lib-provided文件夹加载。

请注意,如果你不排除或提供 tomcat 依赖,外部服务器可能会失败或在不一致的状态下工作,甚至可能在某些版本中无错误地工作,而在另一个版本中失败,这取决于服务器对重复库的处理。


0
投票

如果你不排除tomcat依赖,也不将依赖声明为 provided然后在野蝶19.0.0.0上部署战争失败。java.lang.RuntimeException: java.lang.ClassCastException: org.apache.tomcat.websocket.server.WsServerContainer cannot be cast to io.undertow.websockets.jsr.ServerWebSocketContainer`

© www.soinside.com 2019 - 2024. All rights reserved.