Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 421
RedCollarPanda Avatar asked Nov 29 '17 13:11

RedCollarPanda


1 Answers

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

like image 188
Marc Tarin Avatar answered Oct 21 '22 16:10

Marc Tarin