Философия Java



Разработка EJB - часть 2


Стандартное соглашение об именах Домашних интерфейсов состоит в прибавлении слова “Home” в конец имени Удаленного интерфейса. Вот Домашний интерфейс для PerfectTime EJB:

//: c15:ejb:PerfectTimeHome.java

// Домашний интерфейс PerfectTimeBean.

import java.rmi.*; import javax.ejb.*;

public interface PerfectTimeHome extends EJBHome { public PerfectTime create() throws CreateException, RemoteException; } ///:~

Теперь вы можете реализовать бизнес логику. Когда вы создаете вышу реализацию EJB класса, вы должны следовать этим требованиям (обратите внимание, что вы должны обратиться к спецификации EJB, чтобы получить полный список требований при разработке Enterprise JavaBeans):

  • Класс должен быть публичным (public).
  • Класс должен реализовывать EJB интерфейс (либо javax.ejb.SessionBean, либо javax.ejb.EntityBean).
  • Класс должен определять методы, которые напрямую связываются с методами Удаленного интерфейса. Обратите внимание, что класс не реализует Удаленный интерфейс. Он отражает методы удаленного интерфейса, но не выбрасывает java.rmi.RemoteException.
  • Определите один или несколько методов ejbCreate( ) для инициализации вашего EJB.
  • Возвращаемое значение и аргументы всех методов должны иметь действительны тип данных с точки зрения RMI-IIOP.
  • //: c15:ejb:PerfectTimeBean.java

    // Простой Stateless Session Bean,

    // возвращающий текущее системное время.

    import java.rmi.*; import javax.ejb.*;

    public class PerfectTimeBean implements SessionBean { private SessionContext sessionContext; //возвращае текущее время

    public long getPerfectTime() { return System.currentTimeMillis(); } // EJB методы

    public void ejbCreate() throws CreateException {} public void ejbRemove() {} public void ejbActivate() {} public void ejbPassivate() {} public void setSessionContext(SessionContext ctx) { sessionContext = ctx; } }///:~

    Из-за простоты этого примера EJB методы (ejbCreate( ), ejbRemove( ), ejbActivate( ), ejbPassivate( )) оставлены пустыми. Этиметоды вызываются EJB Контейнером и используются для управления состоянием компонента. Метод setSessionContext( ) передает объект javax.ejb.SessionContext, который содержит информацию относительно контекста компонента, такую как текущая транзакция и информация безопасности.




    Содержание  Назад  Вперед