2009-04-19 29 views
6

Tôi đang tìm một cách tốt nhất có sẵn cho các nhà phát triển Java để triển khai các dịch vụ REST sẽ giao tiếp thông qua JSON hoặc XML. Tôi đang tìm kiếm các sản phẩm sẵn sàng cho sản xuất.Cách Java tốt nhất để tạo các dịch vụ Web REST JSON/XML tương tự như WCF là gì?

Tôi biết rằng Spring 3.0 sắp ra mắt nhưng chưa hoàn thành - không có may mắn.

Jersey có phải là người không?

Ứng dụng của tôi được Tomcat lưu trữ, sử dụng Spring, Jettison và XStream.

Tôi muốn sử dụng gói nguồn mở cho phép tôi có trải nghiệm phát triển tương tự như WCF.NET, nơi tôi có thể khai báo mẫu Url, ánh xạ GET/POST và nhận kết quả bằng XML hoặc JSON. Trọng tải được chấp nhận cũng phải là XML hoặc JSON.

Có ý tưởng nào không?

Trả lời

3

Jersey, RESTEasy và Restlet tất cả xác nhận quyền sở hữu để thực hiện những gì bạn đang yêu cầu. Tôi chỉ thử Restlet, và tôi nghĩ nó khá là khó chịu.

Mùa xuân 3 chưa đạt được bản phát hành cuối cùng, nhưng bản dựng M2 có vẻ khá chắc chắn và có các công cụ REST ở đó. Nếu tôi đang xây dựng một ứng dụng web REST mới, có lẽ tôi sẽ chịu rủi ro với M2.

+0

Bạn nghĩ khung thời gian cho bản phát hành Spring 3.0 là gì? – IgorM

+0

M3 đã hết hạn vào tháng trước nhưng chưa xuất hiện. RC1 là do vào tháng Sáu, tôi nghĩ, vì vậy hy vọng phát hành cuối cùng của 3.0 sẽ là Q3 trong năm nay. – skaffman

0

Có, Jersey khá tốt và dựa trên mô tả của bạn sẽ thực hiện chính xác những gì bạn muốn.

Tôi sẽ không chờ đợi Spring-WS-điều - Jersey là tốt, và tôi không biết những gì có lợi cho mùa xuân thay thế, ngoài "Spring thương hiệu". Đối với tôi, JAX-RS (thực hiện áo giáp) là một ví dụ rất tốt về việc lựa chọn và sử dụng các thành phần tốt nhất triển khai các API mở; Jersey chạy trên (trong số những thứ khác) bất kỳ thùng chứa servlet nào, có thể sử dụng các trình phân tích cú pháp XML/JSON/etc tốt nhất, sử dụng xác nhận có thể cắm được (api xác thực bean) và vv. Điều tương tự cũng đúng đối với các triển khai JAX-RS khác (như Resteasy).

0

Tôi đã sử dụng và cam kết một số bản vá cho CXF. Nó hỗ trợ JAX-RS và có thể cấu hình đầy đủ với lò xo. Có một hướng dẫn tốt ở đây:

http://cwiki.apache.org/CXF20DOC/jax-rs.html

CXF là một dự án apache và như JAX-RS là một tiêu chuẩn mà bạn nên không có vấn đề di chuyển ra khỏi nó nếu bạn có bất kỳ khó khăn.

Hy vọng điều này sẽ hữu ích.

2

Tôi đã thử với Restlet, RestEasy, Jersey, CXF, Spring. Dưới đây là phản hồi của tôi:

  1. Restlet: Loại khó chịu với bộ chú thích của riêng nó. Và ít bối rối là tốt. Không thể đổ lỗi nhiều, mặc dù họ nhìn chằm chằm thực hiện điều này ngay cả trước khi JAX-RS đã có.

  2. RestEasy/Jersey/CXF: Dễ như tên của nó. Đơn giản và thẳng về phía trước để bắt đầu làm việc trên đó. Phần tốt cho 3 khuôn khổ này là, vì chúng tuân thủ JAX-RS, bất cứ lúc nào trong tương lai có thể nhanh chóng quay trở lại để khung tuân thủ JAX-RS khác nếu nó hoạt động tốt hơn hoặc suiting nhu cầu của bạn tốt hơn nữa

  3. Mùa xuân: Mùa xuân 3 đã bắt đầu hỗ trợ các API REST. Nhưng làm cho không phải là nó không tuân thủ JAX-RS, vì lý do chính là như vậy đối với Restlet.

    Vì vậy, tôi chỉ chọn từ RestEasy/Jersey/CXF.

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