Tôi khá mới đối với Java EE và đã phải vật lộn với sự chậm chạp của quá trình triển khai, và tự hỏi liệu tôi có làm điều gì sai không. Tôi có kinh nghiệm với Django, nơi những thay đổi mã ngay lập tức xảy ra, và có vẻ như việc triển khai các ứng dụng Java EE nóng một chút khó hiểu - có nhiều điều yêu cầu triển khai nóng (Glassfish, Eclipse hotdeploy, Jetty hotdeploy, JRebel, v.v.).Tái triển khai các ứng dụng Java EE ngay lập tức
Dự án của tôi là dự án Maven và tôi đang sử dụng Netbeans để triển khai. Trang này sử dụng khung công tác Spring, JSF và Hibernate.
Trong Netbeans, Triển khai trên Lưu, theo ảnh chụp màn hình sau có vẻ được bật, nhưng việc nhấp/không thể nhấp là không thể vì nó tuyên bố nhận thông tin từ tệp pom.xml của tôi (mặc dù không có trường nào trong pom của tôi .xml (chỉ phụ thuộc)).
Bây giờ, các thay đổi đối với một số tệp có vẻ có hiệu lực ngay lập tức. Chúng bao gồm: - file JSF - file tĩnh
Thay đổi sau đây yêu cầu triển khai: - Bất kỳ tập tin XML - nộp Bất kỳ tài sản, thậm chí tính nội địa hóa các file - Bất kỳ tập tin java
Những thay đổi đối với những yêu cầu tôi triển khai theo cách thủ công và triển khai lại mất nửa phút mặc dù hiện tại tôi chỉ có 2-3 lớp, về cơ bản là một lớp người dùng và lớp ủy quyền. Dự án này chỉ cho phép đăng nhập vào lúc này, và mặc dù vậy, việc biên dịch mất khoảng vài giây; và các container (Glassfish) dường như tiêu thụ khoảng 600 MB RAM và thậm chí cung cấp cho PermGen lỗi sau một vài triển khai và tôi cần phải giết quá trình java bằng cách sử dụng Task Manager. (Tôi đã đọc rằng điều này liên quan đến việc thu gom rác bị rò rỉ sau mỗi lần triển khai lại, và tôi thậm chí còn sử dụng jhat để tạo hồ sơ, nhưng được trình bày với danh sách hàng nghìn lớp, lớp học của tôi, lớp Spring, Hibernate, v.v.)
Tôi cũng đã nghe về jrebel, và thử chạy nó, nhưng có vẻ như nó không tương thích với phiên bản Netbeans (7.0) của tôi và mặc dù nó có vẻ chạy, bất kỳ sửa đổi nào đối với bất kỳ tệp java nào vẫn yêu cầu triển khai lại.
Có bất kỳ điều gì tôi có thể làm để khắc phục những vấn đề này hay chỉ là bình thường trong Java EE để đợi khoảng 1 phút sau mỗi thay đổi đối với bất kỳ tệp Java nào? Vấn đề này làm giảm đáng kể năng suất.
Đây là sản lượng Glassfish của tôi khi triển khai ứng dụng: http://pastebin.com/7FhZ6AVh
"Áp dụng các thay đổi mã" là hotswap. Nó sẽ không hoạt động nếu bạn đang thay đổi chữ ký của lớp. – Daniel