2015-07-07 27 views
6

Cách đặt cấu hình hoạt động trong ứng dụng khởi động mùa xuân. Ứng dụng này sẽ được triển khai trong một mình Tomcat.Khởi động mùa xuân Lập trình hồ sơ thiết lập

Tôi có 2 tệp ứng dụng thuộc tính- {profile} .properties.

lớp Application My

@SpringBootApplication 
     public class Application extends SpringBootServletInitializer { 

      @Override 
      protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {   
       return application.sources(Application.class); 
      } 

      public static void main(String[] args) { 
       System.setProperty(AbstractEnvironment.ACTIVE_PROFILES_PROPERTY_NAME, "dev"); 
ApplicationContext ctx = SpringApplication.run(Application.class, args); 
     } 
    } 

nếu tôi chạy các ứng dụng với tomcat nhúng hồ sơ cá nhân dev được thiết lập như hoạt động và nó hoạt động tốt. Nhưng khi tôi triển khai ở một mình tomcat. Nó không hoạt động.

Tôi đã cố đặt cấu hình hoạt động theo phương thức cấu hình. nhưng tôi nhận được ngoại lệ con trỏ null, khi tôi nhận được môi trường từ ngữ cảnh.

Bất kỳ trợ giúp nào về cách đặt cấu hình hoạt động.

Trả lời

6

Tôi cũng có cùng một vấn đề và sau khi làm việc nửa ngày tôi đã kết thúc với điều này :

@SpringBootApplication 
    public class MyApplication extends SpringBootServletInitializer { 

     public static void main(String[] args) { 
      System.setProperty(AbstractEnvironment.ACTIVE_PROFILES_PROPERTY_NAME, "dev"); 
      SpringApplication.run(MyApplication.class, args); 
     } 

     @Override 
     public void onStartup(ServletContext servletContext) throws ServletException { 
      System.setProperty(AbstractEnvironment.ACTIVE_PROFILES_PROPERTY_NAME, "dev"); 
      super.onStartup(servletContext); 
     } 
    } 
1

Thay vì kích hoạt hồ sơ cá nhân tự động, bạn có thể đặt các cấu hình như vm-luận trong catalina.sh

CATALINA_OPTS="-Dspring.profiles.active=dev" 
+0

Tôi có tình huống tương tự. Hiện tại, application- {profile} được tạo và profile được kích hoạt được thiết lập trong khi chạy ứng dụng thông qua --spring.profiles.active = dev. Làm việc tốt. Hiện tại ứng dụng được chạy từ nhật thực. Nếu tôi triển khai này để tomcat, làm thế nào tôi có thể đạt được điều này? – sunitha

+0

@sunitha bạn có thể đặt cấu hình trong tomcat vm-rguments và nó sẽ hoạt động – Mukun

0

System.setProperty ("spring.profiles.active", "dev");

Các vấn đề liên quan