Tôi phát hiện ra một tính năng mới trong java yên tĩnh khi sử dụng EJB 3.1 trong khi đọc một bài báo tại Adam Bien's blog.Làm cách nào để hiển thị EJB 3.1 dưới dạng dịch vụ web REST?
Điều này là hạt Stateless và Singleton có thể được hiển thị dưới dạng tài nguyên gốc. Nhưng bằng cách nào? tôi đã cố gắng để làm điều đó theo cách này:
@Stateless
@LocalBean
@Path("Hybrid")
public class RESTEJBSample {
@GET
@Path("/demo")
@Produces(MediaType.TEXT_PLAIN)
public String something() {
return "I am a Hybrid!!!";
}
}
Khi tôi gọi URL http://localhost:8080/HybridSample/resources/Hybrid/demo tôi nhận được một lỗi 404.
Appart của điều này và chỉ để đảm bảo rằng JAXRS đang làm việc trong dự án của tôi, tôi đã tạo một tài nguyên pojo đơn giản chỉ để kiểm tra nếu nó hoạt động tốt.
@Path("/genericresource")
public class GenericResource {
@GET
@Path("/samplemethod")
@Produces(MediaType.TEXT_PLAIN)
public String saySomething() {
return "Something!";
}
}
Ở đây khi tôi gọi URL http://localhost:8080/HybridSample/resources/genericresource/samplemethod Nó hoạt động tốt!
Vì vậy, câu hỏi của tôi là:
những gì còn thiếu trong EJB của tôi vì vậy nó có thể làm việc như một nguồn lực dịch vụ web như GenericResource lớp đang làm gì?
Có một số cấu hình bổ sung cần thiết không?
Những hạn chế khi sử dụng EJB làm dịch vụ web là gì?
Tốt i didnt biết một :) Tùy chọn web.xml đầu tiên cũng là favoutity tôi, hiện lookl web.xml của tôi như thế rồi. Ngoài ra tôi đã sử dụng IDE Netbeans 'Mới-> Webservice' và làm theo hướng dẫn tôi đánh dấu vào một tùy chọn cho biết tạo dịch vụ web là bean không trạng thái. Điều đó chèn thêm EJB vào tệp .war và bây giờ nó hoạt động tốt. Ví dụ của tôi hoạt động tốt bây giờ, nhưng tôi cũng sẽ quan tâm đến việc biết những gì đang xảy ra đằng sau hiện trường ?, những gì các tập tin đang được chỉnh sửa bởi Net Beans? Và những hạn chế của loại đậu này là gì? Vâng tôi nghĩ rằng đây cũng là một tính năng rất thú vị. – sfrj
NetBeans không thêm bất cứ điều gì: những điều duy nhất bạn phải làm là tạo ra lớp không trạng thái (RESTEJBSample trong ví dụ của bạn) và bộ điều hợp servlet trong web.xml. Servlet đang làm tất cả các phép thuật đằng sau hậu trường. Về những hạn chế, tôi nghĩ rằng bạn nên cố gắng làm rõ một chút câu hỏi của bạn. – perissf
Khi tôi đề cập đến những hạn chế tôi muốn nói. Những hạt cà phê này có thể hoạt động theo cùng một cách như khi được triển khai trong các Mô-đun EJB không? Những gì tôi có nghĩa là có bất kỳ cần cho một số loại quản lý giao dịch thủ công? Họ có thể tương tác với JMS? ... Bây giờ họ không có trong EJB container, họ đang ở trong một tập tin .war. – sfrj