2016-04-13 23 views
1

için Spring Boot uygulamasını dağıtırken çağrılmıyor Tomcat 8.0.32'de Spring boot war'ı dağıtmaya çalışıyorum. ApplicationContextInitializer sınıfının aşağıda gösterildiği gibi bir şey tanımladım. Ancak, tomcat'i başlattığımda, ApplicationContextInitializer yönteminin başlatılması asla çağrılmıyor. Burada yanlış bir şey yapıyorum. Yardım ettiğin için teşekkür ederim. bir savaş olarak başlatırkenApplicationContextInitializer, Tomcat

public class Application extends SpringBootServletInitializer { 
public static void main(String[] args) throws Exception { 
     SpringApplication app = new SpringApplication(Application.class); 
     app.addInitializers(new ApplicationContextInitializer<?>[] { new DemoInitializer() }); 
     app.run(args); 
    } 
} 
+0

ben Uygulama sınıfında createSpringApplicationBuilder geçersiz kılmak zorunda kaldı ve SpringApplicationBuilder ayarlanan başlatıcı benim için çalıştı.! – Coder

cevap

0

Spring Boot docs göre, configure(SpringApplicationBuilder builder) yöntemini geçersiz kılarak SpringApplicationBuilder için ApplicationContextInitializer eklemeniz gerekir. CustomInitializer senin ApplicationContextInitializer nerede olduğunu (çalıştırılabilir uygulama ve bunun gibi gerek savaş Initializer kullanılabilir yapabilirsiniz:

@SpringBootApplication 
public class Application extends SpringBootServletInitializer { 

    @Override 
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { 
     return configureApplication(builder); 
    } 

    public static void main(String[] args) { 
     configureApplication(new SpringApplicationBuilder()).run(args); 
    } 

    private static SpringApplicationBuilder configureApplication(SpringApplicationBuilder builder) { 
     return builder.sources(Application.class).initializers(new CustomInitializer()); 
    } 

}