2012-09-10 27 views
8

Phương pháp triển khai phiên bản ứng dụng weblogic (11g) mới của chúng tôi là sao chép trên đầu tệp hiện có và sau đó dừng và khởi động lại máy chủ weblogic. Chúng tôi bắt đầu/dừng lại của weblogic hơn là một redeployment, vì vấn đề permgen được biết đến (nơi cuối cùng chúng tôi sẽ chạy ra khỏi gen perm và phải trả lại máy chủ weblogic).Làm cách nào để tôi tải lại JSP được lưu trữ trên web khi khởi động lại

Tuy nhiên, phương pháp triển khai này có nhược điểm - các phiên bản JSP mới không được weblogic nhìn thấy. Để khắc phục điều này, chúng tôi đã phải xóa sạch nội dung của thư mục tmp để duy trì bộ nhớ cache của các JSP đã biên dịch trước khi khởi động lại máy chủ. Có một cài đặt nào có thể cho weblogic xóa sạch bộ nhớ cache/tải lại/biên dịch lại JSP khi nó bắt đầu sao lưu không?

Trả lời

1

Để tránh điều này, trước tiên bạn nên cập nhật Mô-đun của mình và sau đó khởi động lại máy chủ .. điều này sẽ khắc phục được sự cố của bạn.

Mặc dù quá trình được đề cập đến luôn mang đến độ chính xác 100%. Nhưng bạn có thể thử các bước được đề cập ở trên.

4

Thay đổi JSP refresh timer

Một giải pháp giữa các ý kiến ​​nói với WebLogic để kiểm tra độ tươi JSP thường xuyên hơn bởi một trong hai thiết lập các giá trị trong web.xml của bạn hoặc trong weblogic.xml của bạn.

Trong phương thức sản xuất, WebLogic sẽ không kiểm tra các phiên bản JSP mới (giá trị mặc định: -1) trong khi nó mỗi giây trong chế độ phát triển (giá trị mặc định : 1).

Lựa chọn giữa sửa đổi web.xml hoặc weblogic.xml tùy thuộc vào bạn, về máy chủ ứng dụng mà bạn nhắm mục tiêu, chỉ là WebLogic hay không.

Nếu bạn muốn sửa đổi web.xml, sau đó thiết lập giá trị cho các tham số bối cảnh weblogic.jsp.pageCheckSeconds như sau:

<context-param> 
    <param-name>weblogic.jsp.pageCheckSeconds</param-name> 
    <param-value>0</param-value> 
</context-param> 

Nếu bạn muốn sửa đổi weblogic.xml, sau đó thiết lập giá trị cho tham số page-check-seconds trong phần jsp-descriptor. Đây là đoạn trích có liên quan từ tài liệu:

Đặt khoảng thời gian, tính bằng giây, tại đó Máy chủ WebLogic kiểm tra xem tệp JSP đã thay đổi và cần biên dịch lại chưa. Phụ thuộc cũng được kiểm tra và đệ quy tải lại nếu thay đổi. Giá trị -1 nghĩa là không bao giờ kiểm tra các trang. Đây là giá trị mặc định trong môi trường sản xuất. Giá trị 0 có nghĩa là luôn kiểm tra các trang. Giá trị 1 có nghĩa là kiểm tra các trang mỗi giây. Đây là giá trị mặc định trong môi trường phát triển. Trong môi trường sản xuất, nơi thay đổi đối với JSP rất hiếm, hãy xem xét thay đổi giá trị của pageCheckSeconds thành 60 trở lên, theo yêu cầu điều chỉnh của bạn.

Nguồn: http://docs.oracle.com/cd/E21764_01/web.1111/e13712/weblogic_xml.htm#i1038490

Buộc tái triển khai

Khởi động lại WebLogic máy chủ không buộc nó để triển khai một ứng dụng Web (đặc biệt là trong chế độ sản xuất).

Giải pháp kích hoạt một cách rõ ràng "triển khai lại" hoạt động vòng đời sử dụng dòng lệnh như thế này:

java -cp weblogic.jar weblogic.Deployer -redeploy [-remote -adminurl t3://hostname:hostport] -username login -password password -name webapp.name [-upload -source webapp.war] 
  • Lưu ý rằng -redeploy là CÁCH an toàn hơn nhiều so với -update, đặc biệt. với Weblogic < = 10.x

  • Giữ khối đầu tiên giữa [], chỉ khi máy chủ không phải là cục bộ. Tháo [] trong trường hợp đó.

  • Giữ khối thứ hai giữa [], nếu bạn muốn kết hợp tệp WAR tải lên trong cùng một bước, đó là cách đơn giản hơn. Tháo [] trong trường hợp đó.

+1

Tôi gặp vấn đề tương tự. Các trang kiểm tra-giây hoạt động tốt khi sửa đổi các tệp JSP được triển khai trực tiếp. Trong kịch bản được mô tả bởi @BestPractices, mặc dù máy chủ bị tắt và sau đó các tệp được triển khai, weblogic dường như không nhận thấy rằng tất cả/một số tệp đã thay đổi và sử dụng các lớp được tạo thay thế. –

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