实际上,这不是问题,但我想理解是一件奇怪的事情。我将SpringBoot2与嵌入式Tomcat一起使用。并且我添加了自签名SSL证书。这是很普通的配置:
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=123456
server.ssl.key-alias=tomcat
server.port=8443
我建立了一个连接器,以强制http-> https重定向,就像许多示例中一样:
private Connector getHttpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(8080);
connector.setSecure(false);
connector.setRedirectPort(8443);
return connector;
}
如果我不会在配置中指定server.port属性,则会看到以下错误:
说明:
配置为侦听端口8080的Tomcat连接器无法 开始。该端口可能已在使用中,或者连接器可能已在使用中 配置错误。
操作:
验证连接器的配置,识别并停止任何过程 在端口8080上监听,或配置此应用程序以监听 在另一个端口上。
但是,如果我愿意,我会看到以下内容:
o.s.b.w.embedded.tomcat.TomcatWebServer:Tomcat在端口上启动: 8443(https)8080(http),上下文路径为
为什么server.port开始指向https端口???甚至springframework.boot.autoconfigure.web.ServerProperties的来源都说是
/**
* Server HTTP port.
*/
可以,还是我的服务器中有些奇怪的东西?还是这是选区商的工作方式? :)谢谢
答案 0 :(得分:1)
默认情况下,如果未在属性文件中为server.port提供任何值,则嵌入式服务器将从端口8080开始 并且您还将连接器端口指定为8080(connector.setPort(8080);) 因此,您会遇到端口冲突。