2010-07-14 21 views
8

Gần đây tôi đã xem xét JAX-RS vì tôi thực sự thích nền tảng Java và một kiểu phát triển web RESTful. Tôi đã đọc rất nhiều về việc sử dụng JAX-RS để tạo các Dịch vụ Web RESTful, nhưng có thể sử dụng JAX-RS để tạo các trang web RESTful không? Tôi đoán cụ thể hơn, là nó có thể sử dụng JAX-RS như một bộ điều khiển (để lấy dữ liệu cần thiết từ máy chủ) và sau đó chuyển tiếp kiểm soát đến một công cụ xem để render HTML thích hợp?Có thể sử dụng JAX-RS làm khuôn khổ web không?

Tôi đã tham gia nhưng không tìm thấy bất kỳ tài nguyên nào cho bạn thấy cách thực hiện điều này.

Cảm ơn bạn đã có thông tin chi tiết/trợ giúp.

+0

Tôi đã tự hỏi điều tương tự. Một phần của vấn đề là biết cách đặt câu hỏi. – craig

+0

Tôi đã kết thúc bằng việc triển khai JAX-RS của Jersey cho phép bạn trả lại phản hồi "Có thể xem". Điều này cho phép bạn sử dụng JSP để trả về đánh dấu HTML. Tôi tin rằng có những triển khai khác cho phép bạn làm cùng một loại điều. Nó kết thúc hoạt động rất tốt và cung cấp cho bạn toàn quyền kiểm soát phản hồi được trả lại cho khách hàng. –

+0

Tôi đang gặp khó khăn khi kết nối các phương pháp có thể xem với các chế độ xem. Bạn có nhớ xem tôi đã làm gì không? http://stackoverflow.com/questions/8978200/can-not-connect-jax-rs-service-to-mvc-template – craig

Trả lời

6

Tôi nghĩ bạn đang gặp khó khăn với các tìm kiếm trên google vì không có nhiều người đang làm việc này. JAX-RS được thiết kế cho các dịch vụ web, vì vậy các nhà phát triển không nghĩ đến việc sử dụng nó như một bộ điều khiển cho các ứng dụng web. Tuy nhiên, không có lý do nó sẽ không hoạt động.

Kiểm tra bài viết trên blog này: JAX-RS as the one Java web framework to rule them all?

Tôi nghĩ đó là chính xác là điều mà bạn đang tìm kiếm.

3

dbyrne đúng là hầu như không ai làm điều này. Việc sử dụng JAX-RS thông thường hơn để đưa thông tin vào JSON hoặc XML là thông thường hơn. Sau đó, bạn ưa thích trình duyệt web với khung RIA (ví dụ: Ext JS), xử lý thao tác DOM và chèn dữ liệu dưới dạng được tải xuống dưới dạng JSON/XML. Cách tiếp cận này là mạnh mẽ. Bạn có thể viết nhiều, có thể là các trình duyệt không phải là trình duyệt cho dịch vụ, tất cả đều phân tích cú pháp cùng một JSON/XML. Bạn có thể viết các ứng dụng web "một trang", nơi tất cả trao đổi thông tin diễn ra thông qua AJAX sau lần tải trang đầu tiên. Tôi mong bạn điều tra và xem xét những điểm mạnh và điểm yếu của nó trong bối cảnh vấn đề cụ thể của bạn.

Trả lời câu hỏi của bạn: câu trả lời là "loại". Chức năng này không được cung cấp trực tiếp bởi đặc tả JAX-RS (như 1.1). Tuy nhiên, nó trong triển khai tham chiếu JAX-RS, Jersey, thông qua đối tượng phản hồi Viewable. Xem bài đăng trên blog này nếu bạn muốn điều tra thêm: http://blogs.oracle.com/sandoz/entry/mvcj. Tôi muốn chỉ ra rằng tôi có không có trải nghiệm với bên này của Jersey. Thật dễ chịu khi viết các dịch vụ web trả về XML/JSON với Jersey, nhưng tôi không thể nói chuyện với doanh nghiệp tạo khuôn mẫu HTML phía máy chủ này.

Chỉnh sửa: dbyrne đã chỉnh sửa câu trả lời của mình để bao gồm một bài đăng trên blog trỏ đến bài viết được đề cập ở trên. Tôi nghĩ cả hai chúng tôi đã hội tụ về cùng một câu trả lời.

3

Nếu bạn thực sự muốn chỉ dựa vào JAX-RS cho khung web của mình, Jersey có thể là đặt cược tốt nhất của bạn. Hãy nhớ rằng các tính năng bạn nhận được từ nó sẽ tối thiểu và bạn rõ ràng sẽ không nhận được tất cả chuông và còi như những gì được cung cấp bởi JSF, Wicket, v.v.

Nếu bạn biết ứng dụng web của mình đang hoạt động dựa vào Spring, có lẽ bạn nên cân nhắc sử dụng Spring MVC 3.0. Nó cung cấp dịch vụ web an toàn như nhau và nó cung cấp cho bạn các tính năng tốt hơn để bạn không cần phải thực hiện hầu hết trong số chúng mình. Cấp, Spring MVC 3.0 không phải là một thực hiện của JAX-RS và dựa trên những gì các nhà phát triển Spring nói, có vẻ như họ sẽ không bao giờ làm cho Spring MVC như là một thực hiện của JAX-RS vì họ đã được khá một vài triển khai ổn định ra khỏi đó. Tuy nhiên, cú pháp khá giống với ý kiến ​​của tôi, hoặc ít nhất tôi có thể hiểu chúng khá nhanh mặc dù tôi đã sử dụng Jersey một thời gian.

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