2012-08-27 28 views
18

Nếu tôi có thể chọn, tôi sử dụng JBoss 7 cho một dự án Java EE 6 sử dụng JSF 2 và CDI.CDI trên Tomcat 7 - có hợp lý không?

Nhưng đôi khi, môi trường cho dự án của khách hàng được đặt nhiều hơn hoặc ít hơn - vì vậy trong một trường hợp chúng tôi bị giới hạn ở Tomcat (6 hoặc có thể là 7).

Vì vậy, tôi đã đọc một số bài viết về cách sử dụng CDI (ví dụ: WELD) và JSF 2 trong Tomcat, cho thấy rằng về cơ bản không có vấn đề gì khi thực hiện nó.

Tuy nhiên, câu hỏi của tôi là - điều đó có hợp lý không? Hoặc là một thùng chứa servlet không phải là môi trường thích hợp cho một kiến ​​trúc như vậy? Có ai có kinh nghiệm sử dụng Tomcat + CDI cho một thứ gì đó hơn là một dự án demo không?

Cảm ơn trước!

+0

Sẽ rất tuyệt nếu bạn có thể cập nhật câu hỏi về cách bạn quyết định ... –

+1

@jangroth Như tôi đã nói - quyết định của tôi sẽ dễ dàng, nhưng nếu quyết định cuối cùng là cho Tomcat, tôi có thể sống với nó và một trăm lọ trong chiến tranh của tôi miễn là không có điểm chặn thực sự aganinst Tomcat + CDI. –

Trả lời

13

Câu hỏi hay, trước hết :)

Triển khai ứng dụng doanh nghiệp cho công cụ servlet là kịch bản chính của ví dụ: Mùa xuân, vì vậy nó chắc chắn là có thể. Nhưng bạn sẽ biết rằng Spring là một hệ sinh thái toàn diện của các API và các tệp cấu hình hơn là một vài JAR mà bạn chỉ cần đặt trên máy chủ và vui chơi với nó.

Tôi đã chơi khá một chút với Weld & JSF trên Tomcat 7 và nó hoạt động khá tốt. Nhưng có một sự khác biệt lớn giữa HelloWorldOnTomcat.java và một ứng dụng thực sự cho các khách hàng thực sự. Tôi chắc chắn rằng bạn nhận thức được điều này.

Tôi muốn nói rằng bạn sẽ có thể biên dịch thiết lập hợp lý trong thời gian tương đối ngắn. Cả CDI lẫn JSF đều không có vấn đề gì. Nhưng tùy thuộc vào yêu cầu cụ thể của bạn, bạn sẽ phải đối phó với các khía cạnh khác không được bao phủ bởi một Tomcat ngoài hộp. Bảo mật, phân cụm, thất bại, nhắn tin, không đồng bộ để đặt tên cho một vài mối quan tâm (Và các giao dịch, như được đề cập trong các nhận xét).

Nếu bạn (nhiều hay ít) thành thạo với các yêu cầu đó và dự án sắp tới của bạn khá thoải mái và không được phép kiểm soát sứ mệnh sao Hỏa tiếp theo - tôi chắc chắn sẽ thử.

Mặt khác, nếu bạn biết về các yêu cầu đó, tôi sẽ tìm (a) thiết lập trên máy chủ ứng dụng Java EE hoặc (b) ngăn xếp khác trên Tomcat.

+5

Tôi sẽ chỉ thêm vào danh sách tính năng không được bao gồm bởi Tomcat + JSF và CDI, quản lý giao dịch. Nếu ứng dụng của bạn không chỉ đọc, bạn có thể sẽ cần giao dịch và do đó bạn sẽ cần phải sử dụng một khung bên ngoài cho nó (bạn có thể sử dụng mùa xuân cho nó) hoặc tự làm điều đó. Như JEE6 container ít nhất là ánh sáng như Tomcat, cố gắng đẩy một chút JEE6 (TomEE có thể là một điểm khởi đầu tốt;)) – Kazaag

4

Hãy nhìn vào Apache Tomee:

Apache TomEE, phát âm là "Tommy", là một tất cả-Apache Java EE 6 Web hồ sơ chứng nhận chồng nơi Tomcat là con chó hàng đầu. Apache TomEE là được lắp ráp từ tệp zip Tomcat Apache Tomcat. Chúng tôi bắt đầu với Tomcat, thêm các lọ của chúng tôi và nén phần còn lại. Kết quả là Tomcat có thêm tính năng EE - TomEE.

+1

Tôi chưa bao giờ sử dụng nó, nhưng nghe nói về dự án.Nó thực sự có ý nghĩa, nhưng vấn đề là như tôi đã nói trong bài viết của tôi rằng đôi khi môi trường được đặt tại một trang web của khách hàng, vì vậy có một Tomcat 7 được cài đặt và tất cả những gì chúng ta có thể làm là triển khai một tệp WAR. –

+1

Trong trường hợp đó, tôi nghĩ bạn nên tự động quấn tất cả các thành phần vào tệp WAR. Sử dụng Maven sẽ giúp ích rất nhiều. Tôi không nhớ nếu bạn phải điều chỉnh bất kỳ cấu hình nào trong vùng chứa (Tomcat) cho một số thành phần nhất định. Dù sao, hãy xem trang web Apache TomEE có thể giúp, vì họ đã đạt được tích hợp đầy đủ chức năng của ngăn xếp JEE trên Apache Tomcat. –

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