Page 2 of 4
The bean implementation class is a regular Java class, also sometimes called a POJO, or a plain-old Java object. It does not implement an EnterpriseBean type. The declaration and the configuration in the deployment descriptor can be defined within the Java code, using the annotations
metadata facility. In addition, default values are provided for most configurations, thus minimizing the bean-specific configuration
requirements. Under the new specification, one could deploy session beans without any ejb-jar.xml deployment descriptors,
though they still exist and could be used if the developer prefers that to the annotations model.
In the case of EJB 3.0 session beans that implement a Web service, the methods exposed as Web service operations are annotated
with the WebMethod descriptor. Session beans that serve as Web service endpoints are annotated as a WebService.
Listing 2 illustrates the earlier example (from Listing 1) of the stateful session bean using the EJB 3.0 specification.
Listing 2. An EJB 3.0-based banking service stateful session bean
@Remote
public interface BankingService {
public void deposit(int accountId, float amount);
public void withdraw(int accountId, float amount);
public float getBalance(int accountId);
publlic void doServiceLogout();
}
@Stateful
public class BankingServiceBean implements BankingService {
public void deposit(int accountId, float amount) {
//Business logic to deposit the specified amount and update the balance
}
public void withdraw(int accountId, float amount) {
//Business logic to withdraw the desired amount and update the balance
}
public float getBalance(int accountId) {
//Business logic to get the current balance
}
@Remove
public void doServiceLogout () {
//Service completion and logout logic
}
}
In EJB 2.1, a message-driven bean class implemented the MessageDrivenBean interface and the message listener interface. The callback methods were implemented in the bean class and the container,
on a particular event called the corresponding method. Message-driven beans never involved the concept of a home and a remote,
or local, interface.
In EJB 3.0, the MessageDriven annotation is used to mark and specify a message-driven bean. The deployment descriptor can also be used to specify a bean
as message-driven. Thus, it is not required for the bean class to implement the MessageDrivenBean interface. The business interface of a message-driven bean is the message listener interface that corresponds to the message
type that the bean is a listener for. In the case of Java Message Service, javax.jms.MessageListener is the message listener interface or the business interface. The bean class needs to implement the message listener interface
or annotate the message listener interface using the MessageDriven annotation.
The new specification supports callback methods (PostConstruct and PreDestroy), provides the Dependency Injection pattern for access to resources, and allows interceptor method definition for message-driven
beans.
| Subject |
|
|
|
|
|
|
Nice onceBy Anonymous on October 26, 2009, 3:11 amThis gave good brief idea reg. migration. But if couple of samples could be more helpful on EntityManager.
Reply | Read entire comment
View all comments