Переопределить приложение SpringBoot EmbeddedServletContainerFactory

OpenLiberty 18.0.0.3 поддерживает автоматическое отключение встроенного контейнера Tomcat. Однако это не работает, когда приложение SpringBoot содержит EmbeddedServletContainerFactory @Bean в классе приложения SpringBoot.

Как можно отключить этот EmbeddedServletContainerFactory @Bean с помощью внешнего файла конфигурации /xml или другого файла, чтобы Liberty могла переопределить встроенный контейнер?

package com.mw.springboot.jaxws;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class SpringCxfApplication {

  public static void main(String[] args) {


    SpringApplication.run(SpringCxfApplication.class, args);
  }


  // Register Servlet
  @Bean
  public ServletRegistrationBean servletRegistrationBean() {
    ServletRegistrationBean bean = new ServletRegistrationBean(new MyServlet(), "/myServlet");
    return bean;
  }

  // how can this be disabled through external configuration?  
  @Bean
  public EmbeddedServletContainerFactory servletContainer() {
      TomcatEmbeddedServletContainerFactory factory = 
                    new TomcatEmbeddedServletContainerFactory();
      return factory;
   }


}

Сообщается о следующих ошибках:

88856 --- [cat-startStop-1] org.apache.catalina.core.ContainerBase
: Дочерний контейнер не удалось во время запуска

java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: не удалось запустить компонент [StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[/path]] в java.util.concurrent.FutureTask.rek. Future java:122) [na:1.8.0_144]

0 ответов

Другие вопросы по тегам