EJB - Dịch vụ web
EJB 3.0 cung cấp một tùy chọn để hiển thị phiên EJB như một dịch vụ web. Chú thích @WebService được sử dụng để đánh dấu một lớp làm điểm cuối của dịch vụ web và @WebMethod được sử dụng để hiển thị một phương thức dưới dạng phương thức web cho ứng dụng khách.
@Stateless
@WebService(serviceName="LibraryService")
public class LibraryPersistentBean implements LibraryPersistentBeanRemote {
...
@WebMethod(operationName="getBooks")
public List<Book> getBooks() {
return entityManager.createQuery("From Books").getResultList();
}
...
}
Ứng dụng mẫu
Hãy để chúng tôi tạo một ứng dụng EJB thử nghiệm để kiểm tra hỗ trợ blob / clob trong EJB 3.0.
Bươc | Sự miêu tả |
---|---|
1 | Tạo một dự án với tên EjbComponent trong gói com.tutorialspoint.entity như được giải thích trong chương EJB - Tạo ứng dụng. Vui lòng sử dụng dự án được tạo trong chương EJB - Persistence như vậy cho chương này để hiểu các đối tượng clob / blob trong khái niệm EJB. |
2 | Tạo LibraryPersistingBean.java trong gói com.tutorialspoint.stateless. Sử dụng chương EJB - Persistence làm tài liệu tham khảo. Giữ phần còn lại của các tệp không thay đổi. |
3 | Làm sạch và xây dựng ứng dụng để đảm bảo logic nghiệp vụ đang hoạt động theo yêu cầu. |
4 | Cuối cùng, triển khai ứng dụng dưới dạng tệp jar trên Máy chủ ứng dụng JBoss. Máy chủ ứng dụng JBoss sẽ tự động khởi động nếu nó chưa được khởi động. |
LibraryPersistsBean.java
package com.tutorialspoint.stateless;
import com.tutorialspoint.entity.Book;
import java.util.List;
import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@Stateless
@WebService(serviceName="LibraryService")
public class LibraryPersistentBean implements LibraryPersistentBeanRemote {
public LibraryPersistentBean() {
}
@PersistenceContext(unitName="EjbComponentPU")
private EntityManager entityManager;
public void addBook(Book book) {
entityManager.persist(book);
}
@WebMethod(operationName="getBooks")
public List <Book> getBooks() {
return entityManager.createQuery("From Book").getResultList();
}
}
Đầu ra nhật ký máy chủ ứng dụng JBoss
10:51:37,271 INFO [EJBContainer] STARTED EJB: com.tutorialspoint.stateless.LibraryPersistentBean ejbName: LibraryPersistentBean
10:51:37,287 INFO [JndiSessionRegistrarBase] Binding the following Entries in Global JNDI:
LibraryPersistentBean/remote - EJB3.x Default Remote Business Interface
LibraryPersistentBean/remote-com.tutorialspoint.stateless.LibraryPersistentBeanRemote - EJB3.x Remote Business Interface
10:51:37,349 INFO [EJBContainer] STARTED EJB: com.tuturialspoint.messagebean.LibraryMessageBean ejbName: BookMessageHandler
10:51:37,443 INFO [DefaultEndpointRegistry] register: jboss.ws:context=EjbComponent,endpoint=LibraryPersistentBean
10:51:38,191 INFO [WSDLFilePublisher] WSDL published to: file:/D:/Jboss-5.0.1/server/default/data/wsdl/EjbComponent.jar/
LibraryService3853081455302946642.wsdl
Tạo ứng dụng khách để truy cập EJB dưới dạng dịch vụ web
Trong NetBeans IDE, chọn ,File > New Project >.Chọn loại dự án trong danh mục,Java, Loại dự án là Java Application. Nhấp chuộtNext >Nhập tên và vị trí dự án. Nhấp chuộtFinish >cái nút. Chúng tôi đã chọn tên là EJBWebServiceClient.
Nhấp chuột phải vào tên dự án trong cửa sổ Project explorer. Lựa chọnNew > WebService Client.
Thêm LibraryPers phù hợpBean của dự án thành phần EJB được tạo trước đó trong WSDL và Vị trí máy khách bằng cách sử dụng Add Project nút trong compile chuyển hướng.
Nhấp vào nút Kết thúc. Xác minh cấu trúc sau trong trình khám phá dự án.
Tạo EJBWebServiceClient.java
package ejbwebserviceclient;
public class EJBWebServiceClient {
public static void main(String[] args) {
}
}
Chọn phương thức web getBooks của Dịch vụ Web như thể hiện trong hình bên dưới và kéo nó vào cửa sổ mã của EJBWebServiceClient.
Bạn sẽ thấy kết quả tương tự như hình dưới đây.
Cập nhật mã EJBWebServiceClient để sử dụng phương pháp này.
package ejbwebserviceclient;
public class EJBWebServiceClient {
public static void main(String[] args) {
for(com.tutorialspoint.stateless.Book book:getBooks()) {
System.out.println(book.getName());
}
}
private static java.util.List
<com.tutorialspoint.stateless.Book> getBooks() {
com.tutorialspoint.stateless.LibraryService service =
new com.tutorialspoint.stateless.LibraryService();
com.tutorialspoint.stateless.LibraryPersistentBean port =
service.getLibraryPersistentBeanPort();
return port.getBooks();
}
}
Chạy máy khách
Nhấp chuột phải vào tên dự án trong cửa sổ Project explorer. Lựa chọnRun. Netbeans sẽ xây dựng máy khách và chạy nó. Xác minh kết quả sau.
ant -f D:\\SVN\\EJBWebServiceClient run
init:
Deleting: D:\SVN\EJBWebServiceClient\build\built-jar.properties
deps-jar:
Updating property file: D:\SVN\EJBWebServiceClient\build\built-jar.properties
wsimport-init:
wsimport-client-LibraryPersistentBean:
files are up to date
classLoader = java.net.URLClassLoader@4ce46c
SharedSecrets.getJavaNetAccess()=java.net.URLClassLoader$7@182cdac
wsimport-client-generate:
Compiling 1 source file to D:\SVN\EJBWebServiceClient\build\classes
compile:
run:
learn java
Learn Spring
learn JSF
Learn HTML
Learn JBoss
Learn EJB
Learn Hibernate
Learn IBatis
Times Now
learn html5
Learn images
Learn Testing
Forbes
test1
BUILD SUCCESSFUL (total time: 1 second)