EJB - Web Hizmetleri
EJB 3.0, oturum EJB'sini bir web hizmeti olarak göstermek için bir seçenek sunar. @WebService açıklama, bir sınıfı web hizmeti uç noktası olarak işaretlemek için kullanılır ve @WebMethod, bir yöntemi müşteriye web yöntemi olarak göstermek için kullanılır.
@Stateless
@WebService(serviceName="LibraryService")
public class LibraryPersistentBean implements LibraryPersistentBeanRemote {
...
@WebMethod(operationName="getBooks")
public List<Book> getBooks() {
return entityManager.createQuery("From Books").getResultList();
}
...
}
Örnek Uygulama
EJB 3.0'da blob / clob desteğini test etmek için bir test EJB uygulaması oluşturalım.
Adım | Açıklama |
---|---|
1 | EJB - Uygulama Oluştur bölümünde açıklandığı gibi com.tutorialspoint.entity paketinin altında EjbComponent adıyla bir proje oluşturun. EJB kavramlarında clob / blob nesnelerini anlamak için lütfen bu bölümde EJB - Persistence bölümünde oluşturulan projeyi kullanın. |
2 | Com.tutorialspoint.stateless paketi altında LibraryPersistentBean.java'yı oluşturun. EJB - Persistence bölümünü referans olarak kullanın. Geri kalan dosyaları değiştirmeden tutun. |
3 | İş mantığının gereksinimlere göre çalıştığından emin olmak için uygulamayı temizleyin ve oluşturun. |
4 | Son olarak, uygulamayı JBoss Uygulama Sunucusunda jar dosyası biçiminde dağıtın. JBoss Uygulama sunucusu henüz başlatılmadıysa otomatik olarak başlayacaktır. |
LibraryPersistentBean.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();
}
}
JBoss Uygulama Sunucusu Günlük Çıktısı
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
Web Hizmeti Olarak EJB'ye Erişmek İçin İstemci Oluşturun
NetBeans IDE'de seçin ,File > New Project >Kategori altında proje tipini seçin,Java, Proje türü Java Application. TıklayınNext >düğmesi Proje adını ve konumunu girin. TıklayınFinish >buton. İsmi EJBWebServiceClient olarak seçtik.
Proje gezgini penceresinde proje adına sağ tıklayın. SeçinizNew > WebService Client.

EJB bileşen projesinin daha önce WSDL ve İstemci Konumu altında oluşturulan LibraryPersistentBean öğesini kullanarak ekleyin Add Project düğme compile sekmesi.

Bitir Düğmesine tıklayın. Proje gezgininde aşağıdaki yapıyı doğrulayın.

EJBWebServiceClient.java oluştur
package ejbwebserviceclient;
public class EJBWebServiceClient {
public static void main(String[] args) {
}
}
Aşağıdaki şekilde gösterildiği gibi Web Hizmeti getBooks web yöntemini seçin ve EJBWebServiceClient'in kod penceresine sürükleyin.

Çıkışı aşağıda gösterildiği gibi göreceksiniz.

Bu yöntemi kullanmak için EJBWebServiceClient kodunu güncelleyin.
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();
}
}
İstemciyi Çalıştırın
Proje gezgini penceresinde proje adına sağ tıklayın. SeçinizRun. Netbeans istemciyi oluşturacak ve çalıştıracaktır. Aşağıdaki çıktıyı doğrulayın.
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)