2009-04-24 37 views
9

Tôi đã từng chạy riêng Tomcat trên máy của mình. Tôi đã có một kịch bản lệnh Ant để xây dựng lại dự án của mình, triển khai nó cục bộ và khởi động lại Tomcat. Tất cả đều hoạt động tốt, nhưng tôi không thể gỡ lỗi ứng dụng web bên trong Eclipse.Làm thế nào để quản lý đúng cách các ứng dụng web Tomcat bên trong Eclipse?

Vì vậy, tôi đã học cách thiết lập Tomcat bên trong Eclipse và chạy ứng dụng web của tôi. Bây giờ vấn đề là tôi không hiểu cách quản lý nó theo cách này. Eclipse được thiết lập để tự động xây dựng dự án của tôi về những thay đổi, nhưng những thay đổi đó dường như không luôn được phản ánh trong ứng dụng web. Đôi khi tôi phải tự xây dựng dự án và tự "dọn dẹp" máy chủ để các thay đổi được phản ánh.

Có quy tắc nào đó về cách quản lý thiết lập này không? Ví dụ, nếu tôi chỉ thay đổi một JSP thì nó sẽ tự động được đồng bộ? Nếu tôi thay đổi một lớp servlet, thì tôi cần phải xây dựng lại dự án theo cách thủ công? Những quy tắc này có phù hợp hay không, hay tôi nên tự xây dựng lại và làm sạch mọi lúc?

Tôi thực sự đánh giá cao nếu ai đó có thể cung cấp cho tôi các quy tắc thực hành tốt nhất hoặc chỉ cho tôi một nguồn tài nguyên tốt để tìm hiểu cách quản lý môi trường này.

PS. Tôi đang sử dụng gói Java EE của Eclipse 3.4.1 và Javacat v5.5

Trả lời

5

Bạn có thể sử dụng Eclipse và Tomcat theo cách bạn đề cập. Đầu tiên là vấn đề cơ bản của cách thiết lập nó:

  1. Trong Servers xem thiết lập một máy chủ Tomcat mới trỏ đến TOMCAT_HOME bạn
  2. Hãy chắc chắn rằng dự án của bạn là một Eclipse "dự án web". Bạn có thể cần tạo một tệp giả và sao chép một số tệp trong .settings (xem các tệp wst).
  3. Triển khai dự án của bạn lên Tomcat bằng cách nhấp chuột phải vào máy chủ trong khung nhìn Servers và "Add and Remove Projects ..." để thêm dự án của bạn vào máy chủ.

Bạn có thể chạy máy chủ của mình và kiểm tra nó giống như bạn đang chạy Tomcat bên ngoài Eclipse. Nếu bạn chạy máy chủ trong chế độ gỡ lỗi, bạn có thể thiết lập các điểm ngắt và bước qua mã.

Khi bạn cần khởi động lại máy chủ Eclipse thường khá tốt về việc tự động triển khai các thay đổi. Bạn sẽ không bao giờ cần phải khởi động lại để thay đổi các trang jsp. Nếu bạn thay đổi một lớp, nó sẽ tự động triển khai thay đổi (thường) nếu bạn thay đổi phần thân của một phương thức. Nếu bạn thay đổi chữ ký của một lớp (thêm hoặc loại bỏ một phương thức hoặc thay đổi args cho nó), bạn sẽ hầu như luôn luôn cần phải khởi động lại. Mọi thay đổi đối với tệp cấu hình (web.xml hoặc tương tự) cũng sẽ hầu như luôn yêu cầu khởi động lại.

Để khởi động lại chỉ cần nhấp vào nút "Gỡ lỗi" hoặc "Chạy" trong chế độ xem Máy chủ. Tất cả các thay đổi của bạn sẽ được triển khai lại thành Tomcat.

Một điều cần lưu ý là trong cấu hình mặc định, thư mục "webapp" của bạn trong TOMCAT_HOME sẽ không được sử dụng. Thay vào đó, nó sẽ sử dụng một thư mục trong thư mục không gian làm việc Eclipse của bạn (WORKSPACE/.metadata/.plugins/org.eclipse.wst.server.core/tmp0).

0

Thông thường bạn nên tái xuất bản ứng dụng để nhận các thay đổi mới nhất, đừng quên đồng bộ hóa với hệ thống tệp trước tiên trong trường hợp tệp của bạn được sửa đổi bên ngoài. Bạn có thể chỉ định rằng ứng dụng của bạn được tự động tải lại khi được sửa đổi, hãy tìm thuộc tính Tự động tải lại trong server.xml của dự án cấu hình máy chủ của bạn. Khi được đặt thành true, tomcat sẽ tự động tải lại ứng dụng của bạn. Nó không phải luôn luôn là một ý tưởng tốt bằng cách này. JSP được sửa đổi sẽ hoạt động tự động, không cần phải khởi động lại applciation.

0

Nếu bạn thay đổi cấu trúc của lớp đã được tải và sử dụng (thêm/xóa thành viên, thay đổi chữ ký phương thức, vv), các thay đổi mã của bạn sẽ không được phản ánh. Đây không phải là vấn đề nhật thực mà là vấn đề JVM. Nếu bạn thực hiện các thay đổi mã đơn giản, như thay đổi logic bên trong một phương thức hiện có, các thay đổi của bạn sẽ có hiệu lực sau khi lớp được biên dịch và triển khai lại. Bất kể điều đó, nếu bạn thay đổi một hằng số công khai, bạn phải xây dựng lại (các) dự án của mình.

0

tôi thấy hai điều quan trọng để hiểu:

  • Eclipse không tự động nhận ra nếu các tập tin đã được thay đổi bên ngoài của Eclipse. nhấp vào Làm mới trên một dự án làm điều đó, do đó, F5. Bạn cũng có thể thay đổi cài đặt để làm mới tự động, tuy nhiên, không phát hiện các thay đổi ngay lập tức (cảm giác ruột của tôi nói lên đến 10 giây chậm trễ)

  • Làm việc với máy chủ có khái niệm "Xuất bản" tệp lên Tomcat. Điều này thường xảy ra tự động trong vòng một giây sau bất kỳ thay đổi nào. Thay đổi nhiều lớp có thể gây ra nhiều lần tải lại máy chủ, có thể là kéo nếu tải lại ngữ cảnh mất một thời gian (vì các ứng dụng Spring phức tạp chắc chắn sẽ làm). Vì vậy, tôi đã thay đổi cài đặt để không tự động xuất bản (nhấp đúp vào phiên bản Máy chủ)

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