2010-09-24 31 views
6

Tôi đang cố gắng tìm ra những lựa chọn tốt nhất để phát triển một ứng dụng web RESTful với Java EE 6. Ví dụ, tôi muốn có thể giải thích một URL như vậy:Phát triển Web RESTful Với Java EE 6 - các tùy chọn là gì?

GET www.myapp.com/khách hàng/1 - trả về một trang web hiển thị thông tin chi tiết về khách hàng với id 1.

duy nhất hai lựa chọn tôi có thể nghĩ ra được

  1. Sử dụng Spring MVC 3
  2. Sử dụng một đặc điểm kỹ thuật JAX-RS cho phép bạn hiển thị các khung nhìn - tôi đã nghe RESTEasy tích hợp với Spring MVC chưa?

Có bất kỳ khung công tác nào khác cho phép bạn phát triển các ứng dụng web như thế này không? Ngoài ra, tôi sẽ đánh giá rất cao sự hiểu biết về lý do tại sao một khuôn khổ có thể tốt hơn một khuôn khổ khác.

Một xem xét khác của tôi là bạn có thể sử dụng công nghệ chế độ xem nào với khung công tác? Tôi đã nghe nói rằng nhiều công nghệ xem tích hợp với Spring MVC, chẳng hạn như Velocity và Tapestry ... có dễ dàng tích hợp hoặc tôi sẽ gặp phải nhiều vấn đề không? Một điều cần thiết là tôi cần templating (giống như các trang chủ trong ASP.NET).

Tôi khá mới với thế giới Java EE - Tôi đang sử dụng Microsoft nơi họ cung cấp cho bạn một tùy chọn. Tôi là một fan hâm mộ thực sự lớn của ASP.NET MVC - là có một cái gì đó tương tự như trong thế giới Java (hoặc là Spring MVC nó?).

Tôi không sử dụng cho tất cả các lựa chọn này ... HELP!

Cảm ơn mọi lời khuyên/đề xuất.

+1

Tôi sẽ không đi sâu với điều này (quá chủ quan), nhưng tôi chỉ muốn nói: Spring MVC là ** không ** một phần của Java EE. Spring là một khung bên thứ ba độc lập có thể được sử dụng * trên đầu trang * của Java EE. Java EE đối tác của ASP.NET MVC là bằng cách JSF (JavaServer Faces). Xem thêm [câu trả lời này] (http://stackoverflow.com/questions/2556553/what-is-the-main-stream-java-alternative-to-asp-net-php/2556601#2556601). – BalusC

+0

Tôi biết điều đó. Tôi đang mở để sử dụng các khung bên thứ ba sẽ tích hợp với Java EE. Tôi đã nhìn vào JSF nhưng tôi đã nghe nó không phải là rất tốt nếu bạn muốn làm theo một phong cách RESTful phát triển? –

+0

Không, JSF là nhiều hơn cho giao diện người dùng, không phải cho dịch vụ REST. Có [extensions] (http://ocpsoft.com/prettyfaces/) có thể làm cho URL đẹp hơn (nếu đó là * sau tất cả * những gì bạn muốn), nhưng điều đó không làm cho JSF trở thành một khung công tác REST đầy đủ. Đối với một dịch vụ REST thực, tôi cá nhân đề xuất JAX-RS. – BalusC

Trả lời

6

tôi muốn khuyên bạn nên có một cái nhìn tại địa chỉ:

(Một câu hỏi đặt ra là: tại sao cụ thể bạn cần để có thể tích hợp với Java EE?)

EDIT: Trong trường hợp bạn hoàn toàn muốn sử dụng API Java EE, thì như đã đề cập trong BalusC, JAX-RS là giải pháp bạn chọn. Restlet và Jersey đều ủng hộ nó. Tôi không biết về RESTEasy, nhưng trang Wikipedia JAX-RS đề cập đến nó.

+0

RESTLET có vẻ thực sự thú vị – barjak

+0

Tôi cũng muốn sử dụng Java EE 6 - Tôi thích giao diện của API, tôi không muốn sử dụng JSF. –

+1

Dường như có một chút nhầm lẫn cho bạn giữa các thành phần REST và xem. Trong mọi trường hợp, tôi đã cập nhật câu trả lời của mình và tôi muốn nói bạn nên cung cấp cho RESTLet một ảnh hoặc một khung tương thích JAX-RS khác). – haylem

4

Nó không phải JavaEE, chỉ JavaSE (một số có thể nói đó là một điều tốt) nhưng Play Framework là RESTful, và theo ý kiến ​​của tôi cũng rất tốt đẹp để sử dụng.

+0

Tôi đã xem Play ... nó trông rất tuyệt. Nhắc tôi rất nhiều Ruby on Rails (mà tôi thực sự thích). Nó không có vẻ như bạn có thể sử dụng Java EE (như EJB 3.1, JPA2) vv .. với nó mặc dù? –

+0

Nó cung cấp quyền truy cập vào JPA nhưng rất nhiều công cụ Java EE khác không có sẵn - đó là lý do tại sao tôi thích nó;) Điều tốt nhất cần làm là xem video giới thiệu trên trang web của họ vì đó là tổng quan tốt về những gì đang có - nếu nó không có trong video thì nó không có trong Play, gần như là nói. Có nhiều plugin cho nhiều công nghệ khác (bao gồm JMS và Spring). Thành thật mà nói, trừ khi bạn đang xây dựng một ứng dụng công ty khổng lồ, Play có thể sẽ thực hiện công việc. Mặc dù không tốt cho việc học Java EE! – Rich

1

Tôi đã quyết định đi với Spring MVC. Tôi đã không đi cho JSF 2 bởi vì nó không phải là rất RESTful - nó có vẻ như rất nhiều công việc để có được URL RESTful (phải sử dụng plugins), nó giữ phía máy chủ nhà nước, và hành động không định hướng của nó. Chơi có vẻ như một khung làm việc rất hay, nhưng nó chưa đủ chín chắn để tôi biện minh bằng cách sử dụng nó (và tôi vẫn không chắc liệu bạn có thể sử dụng Java EE với nó).

Spring MVC 3 cho phép bạn ánh xạ URL của bạn RESTfully và định hướng hành động - mà tôi thích.

Tôi đã xem xét Grails trông rất hứa hẹn nhưng vẫn còn tương đối mới và có vẻ như nó chưa hỗ trợ Java EE 6.

1

Tôi sẽ đề nghị thứ hai của Haylem là Restlet. Chúng tôi có một dự án lớn sử dụng Java EE một chút (một số bean phiên không trạng thái, Glassfish, một bean hẹn giờ, servlet, JDBC, JNDI). Restlet phù hợp rất tốt: bạn có thể chạy một tập hợp các dịch vụ web bên trong một servlet dựa trên Restlet. Bạn nhận được một số lượng lớn các chức năng cho nỗ lực tương đối ít. Chúng tôi đã khá hài lòng với nó.

1

Vì bạn có nền Rails, tôi khuyên bạn nên xem qua khung công tác Scooter, cổng này chuyển rất nhiều nội dung hay từ Rails sang Java. Giống như Struts và SpringMVC, nó là một khung công tác dựa trên MVC. Nó xử lý các tuyến đường yên tĩnh đẹp mắt. Xem các url an toàn: http://scooterframework.com/docs/restful_routing.html

Công nghệ lớp chế độ xem của nó chỉ đơn giản là JSP, được quản lý bởi khung bố cục SiteMesh. Nhưng nó cũng xử lý các tệp xem StringTemplate.

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