2013-07-23 52 views
6

Tôi hiện đang cần tạo một máy chủ để chạy một số kiểm tra đơn vị. Để đơn giản hóa quá trình này, tôi muốn nhúng Tomcat vào mã của tôi và tải một cá thể của Tomcat (lần lượt tải tệp WAR của tôi) trước khi chạy kiểm thử đơn vị (sử dụng ký hiệu @BeforeClass).Triển khai WAR trong Tomcat 7

Vấn đề của tôi là làm cách nào để triển khai tệp WAR của tôi vào Tomcat được nhúng?

Như bạn có thể nhận thấy tôi không thể sử dụng plugin mcat tomcat vì tôi muốn nó chạy với các thử nghiệm tự động.

+0

Bạn đã kiểm tra [này] (https://forums.oracle.com/thread/2348024)? – NREZ

Trả lời

5

Mã này hoạt động với Tomcat 8.0:

File catalinaHome = new File("..."); // folder must exist 
Tomcat tomcat = new Tomcat(); 
tomcat.setPort(8080); // HTTP port 
tomcat.setBaseDir(catalinaHome.getAbsolutePath()); 
tomcat.getServer().addLifecycleListener(new VersionLoggerListener()); // nice to have 

Bạn có bây giờ hai lựa chọn. Tự động triển khai bất kỳ ứng dụng web trong catalinaHome/webapps:

// This magic line makes Tomcat look for WAR files in catalinaHome/webapps 
// and automatically deploy them 
tomcat.getHost().addLifecycleListener(new HostConfig()); 

Hoặc bạn có thể tự thêm tài liệu lưu trữ WAR. Lưu ý: Chúng có thể ở bất cứ đâu trên đĩa cứng.

// Manually add WAR archives to deploy. 
// This allows to define the order in which the apps are discovered 
// plus the context path. 
File war = new File(...); 
tomcat.addWebapp("/contextPath", war.getAbsolutePath()); 
Các vấn đề liên quan