2013-11-26 21 views
14

Tôi đang cố gắng sử dụng kepler eclipse cho Java EE 7.I đã cài đặt Công cụ JBoss và thêm JBoss Wildfly thành công làm máy chủ. Tuy nhiên các thay đổi của tôi không được triển khai tự động. Có anyway ứng dụng có thể được triển khai tự động giống như khi sử dụng glassfish?Eclipse Kepler và JBoss Wildfly triển khai nóng

Trả lời

24

Sử dụng Eclipse, nhấp đúp chuột vào WildFly server của bạn để chỉnh sửa các thuộc tính sau:

  1. Xuất bản: chọn "Tự động xuất bản sau sự kiện xây dựng". Tôi cũng muốn thay đổi khoảng thời gian xuất bản thành 1 giây.
  2. Application Nạp lại hành vi: kiểm tra "Tùy chỉnh ứng dụng tải lại ..." hộp kiểm và chỉnh sửa mô hình regex để \.jar$|\.class$

Vậy là xong. Chúc may mắn!

+2

+1 nhưng tùy chọn thứ hai không may có nhược điểm nghiêm trọng: toàn bộ trạng thái ứng dụng bị mất. –

+0

Một điều khiến nó hoạt động với tôi: không triển khai dưới dạng tệp nén. Trong các thuộc tính Wildfly eclipse, KHÔNG chọn tùy chọn "Deploy projects as archive archives" –

8

Tôi giả sử bạn đang sử dụng phiên bản mới nhất của Wildfly (8.0 Beta 1 bằng văn bản).

Trong tệp cấu hình standalone.xml, tìm kiếm < jsp-config/>. Thêm thuộc tính phát triển = "true" và cần triển khai nóng. Các cấu hình kết quả sẽ trông như thế này:

<jsp-config development="true"/> 
+0

Xin chào @Sean Tôi đã làm điều này nhưng khi tôi thay đổi tệp nguồn java, tôi không nhận thấy những thay đổi. Tuy nhiên nếu tôi thay đổi một xhtml nó được phản ánh. – zulq

4

Thêm thuộc tính (phát triển, kiểm tra-khoảng, sửa đổi-test-khoảng, biên dịch-on-thất bại) trong tập tin cấu hình trong xPath = // servlet-container/jsp- config/

<servlet-container name="default" default-buffer-cache="default" stack-trace-on-error="local-only"> 
    <jsp-config development="true" check-interval="1" modification-test-interval="1" recompile-on-fail="true"/> 
</servlet-container> 

(Nó hoạt động trong WildFly-8.0.0.Final)

20

Cả @varantes và @Sean về bản chất đều đúng, nhưng những câu trả lời này chưa đầy.

Thật không may là cách duy nhất trong môi trường máy chủ java có triển khai đầy đủ, không có thời gian ngừng hoạt động là sử dụng công cụ JRebel hoặc miễn phí spring-loaded.

Nhưng đối với dự án nhỏ, có một số cách để tăng tốc công việc bằng cách triển khai một phần. Về cơ bản:

  1. Khi được kích hoạt tùy chọn Tự động xuất bản khi thay đổi nguồn sau đó thay đổi bên trong *.html, *.xhtml file ngay lập tức phản ánh ngay sau khi bạn làm mới trình duyệt.
  2. Để thực hiện việc triển khai nóng cho tập tin *.jsp quá, thì bạn nên bên $ {wildfly nhà} /standalone/configuration/standalone.xml làm thay đổi sau đây:
    <jsp-config/>
    thay bằng:
    <jsp-config development="true"/>

khởi động lại máy chủ và tận hưởng việc triển khai các tệp web.


Nhưng khi sửa đổi *.java các tệp nguồn thì chỉ có thể triển khai một phần có thể.
Như @varantes tuyên bố trong câu trả lời của mình, tạo điều kiện cho Application Nạp lại hành vi với mẫu regex thiết lập để \.jar$|\.class$ là một lựa chọn, nhưng có nhược điểm nghiêm trọng: toàn bộ mô-đun được khởi động lại, như sau:

  1. Phải mất một thời gian (tùy thuộc về mô-đun lớn như thế nào).
  2. Trạng thái ứng dụng toàn bộ bị mất.

Vì vậy, cá nhân, tôi không khuyến khích giải pháp này.
JVM hỗ trợ (trong chế độ gỡ lỗi) trao đổi mã cho các đối tượng của phương thức. Vì vậy, miễn là bạn đang modifing chỉ có cơ quan của phương pháp hiện có, bạn đang ở nhà (không thời gian chết, thay đổi được phản ánh ngay lập tức). Nhưng bạn phải vô hiệu hóa tự động xuất bản bên trong cài đặt máy chủ nếu không trạng thái của ứng dụng sẽ vẫn bị hủy bởi việc tái xuất bản đó.

Nhưng nếu bạn đang nặng nề crafing mã java (thêm lớp học, chú thích, nhà thầu) sau đó unfortunatelly tôi chỉ có thể khuyên bạn nên thiết lập xuất bản vào Chưa bao giờ xuất bản tự động (hoặc tắt máy server) và khi bạn hoàn thành công việc của bạn trong các file java, sau đó khởi động lại bằng tay mô-đun của bạn (hoặc máy chủ bật). Tùy thuộc vào bạn.


Nó hoạt động cho các dự án java nhỏ, nhưng đối với các dự án lớn hơn, JRebel là vô giá (hoặc chỉ tải xuân), vì tất cả các cách tiếp cận được mô tả ở trên là không đủ.
BTW: cũng do các vấn đề như vậy, các giải pháp như Rails/Django/Play! Framework đã đạt được mức độ phổ biến rất lớn.

Chúc may mắn và mã hóa nhanh!

+0

Thậm chí với Play! Khuôn khổ, nếu dự án phát triển đến một kích thước khá, bạn sẽ gặp phải vấn đề tương tự một lần nữa. –

+0

@AntonArhipov Tôi không hiểu tại sao. Bạn có nghĩa là vấn đề với mã thay thế nóng? Tôi không nghĩ vậy (mặc dù chưa bao giờ thấy dự án Play lớn như vậy). Hoặc bạn có nghĩa là chỉ cần khởi động lâu dài? –

+0

Cụ thể, thay thế mã nóng. Tôi đang ở trong nhóm JRebel (để thu âm) và chúng tôi chưa bao giờ xem xét triển khai hỗ trợ JRebel cho những khung hình lạ mắt đó. Nhưng bây giờ người dùng bắt đầu hỏi về sự hỗ trợ ngày càng nhiều - các ứng dụng đã lớn và việc tải lại khung công tác gốc không theo kịp. –

0

Khởi động máy chủ ở chế độ gỡ lỗi và Nó sẽ theo dõi các cơ hội bên trong các phương thức. Các thay đổi khác Nó sẽ yêu cầu khởi động lại máy chủ.

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