2012-01-10 35 views
5

Tôi đã một số nghi ngờ về hoạt động tomcat mà đi qua phát triển ứng dụng web của tôi:Shutdown tomcat ứng dụng sử dụng web được triển khai trong đó

  1. Có cách nào để tắt máy tomcat chính nó từ webapp triển khai trong nó?
  2. Tomcat có đang chạy tất cả các ứng dụng web/chiến tranh bên trong một JVM hoặc JVM riêng lẻ hoặc cấu hình của nó trong một số tệp cấu hình không?
  3. Có thể tăng kích thước heap java cho webapp cụ thể được triển khai bên trong tomcat không?

Cảm ơn rất nhiều.

Trả lời

7
  1. Mở kết nối TCP từ một số servlet và gửi "SHUTDOWN" tới Cổng tắt Tomcat (mặc định: 8005).
  2. Một Tomcat sử dụng một JVM cho tất cả các ứng dụng.
  3. Không. Chỉ dành cho toàn bộ JVM.

Dưới đây là mã cho điểm 1:

Socket clientSocket = new Socket("localhost", 8005); 
clientSocket.getOutputStream().write("SHUTDOWN".getBytes()); 
clientSocket.getOutputStream().close(); 
clientSocket.close(); 
+1

chỉ cung cấp các lệnh tắt máy tương đương với "SHUTDOWN" và lắng nghe cổng 8005 - cả hai có thể được thay đổi. Có một API để lấy cả hai: 'Server server = org.apache.catalina.ServerFactory.getServer(); int port = server.getPort(); String shutdown = server.getShutdown(); ' –

+0

Tất nhiên những điều này phải đúng. Sử dụng 'org.apache.catalina.ServerFactory' là tốt hơn nhưng bạn phải bao gồm các phụ thuộc vào các thư viện Tomcat, ví dụ: Eclipse. –

+0

Vì vậy, những gì? Tôi thà bao gồm các gói cần thiết hơn để mã cứng các giá trị cổng tất cả bởi bản thân mình cho mỗi giải pháp khác nhau. –

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