Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
574 views
in Technique[技术] by (71.8m points)

tomcat - spring boot 2.0 listening on multiple ports

I need to have 2 ports listening in embedded tomcat - lets say 8443 (https) and 8081 (http).

With spring boot 1.5.3.RELEASE I did something like:

@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
    return new EmbeddedServletContainerCustomizer() {
        @Override
        public void customize(ConfigurableEmbeddedServletContainer container) {
            if (container instanceof TomcatEmbeddedServletContainerFactory) {
                TomcatEmbeddedServletContainerFactory containerFactory =
                        (TomcatEmbeddedServletContainerFactory) container;

                Connector connector = new Connector(TomcatEmbeddedServletContainerFactory.DEFAULT_PROTOCOL);
                connector.setPort(httpPort);
                containerFactory.addAdditionalTomcatConnectors(connector);
            }
        }
    };
}

And it was fine. Now I'm trying to use spring-boot-starter-parent 2.0.0.M6 and the following classes cannot be found:

org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory

So I'm looking for a way to accept connections on multiple ports. How can I do that?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Spring Boot 2.0.0 M1 release notes state that:

the embedded containers package structure has been refactored quite extensively. EmbeddedServletContainer has been renamed to WebServer and the org.springframework.boot.context.embedded package has been relocated to org.springframework.boot.web.embedded. For instance, if you were customizing the embedded Tomcat container using the TomcatEmbeddedServletContainerFactory callback interface, you should now use TomcatServletWebServerFactory.

From the Spring Boot source code, starting with commit 67556ba8ea:

org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer was moved to org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory

org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizerwas moved to org.springframework.boot.web.server.WebServerFactoryCustomizer

org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory was moved to org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...