Философия Java


Разработка EJB


В качестве примера будет реализован EJB компонент “Perfect Time” из предыдущего раздела, посвященного RMI. Пример будет выполнен как Сессионный Компонент без Состояния.

Как упоминалось ранее, EJB компоненты содержат не менее одного класса (EJB) и двух интерфейсов: Удаленный и Домашний интерфейсы. Когда вы создаете Удаленный интерфейс для EJB, вы должны следовать следующим принципам:

  1. Удаленный интерфейс должен быть публичным (public).
  2. Удаленный интерфейс должен расширять интерфейс javax.ejb.EJBObject.
  3. Каждый метод удаленного интерфейса должен декларировать java.rmi.RemoteException в предложении throws помимо всех исключений, спецефичных для приложения.
  4. Лбой объект, передаваемый в качестве аргумента или возвращаемого значения (встроенный, либо содержащийся внутри локального объекта) должен быть действительным с точки зрения RMI-IIOP типом данных (это относится и к другим EJB объектам).

Вот простой удаленный интерфейс для PerfectTime EJB:

//: c15:ejb:PerfectTime.java

//# Вы должны установить J2EE Java Enterprise

//# Edition с java.sun.com и добавить j2ee.jar

//# в вашу переменную CLASSPATH, чтобы скомпилировать

//# этот файл. Подробности смотрите на java.sun.com.

// Удаленный интерфейс для PerfectTimeBean

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

public interface PerfectTime extends EJBObject { public long getPerfectTime() throws RemoteException; } ///:~

Домашний интерфейс является фабрикой для создания компонента. Он может определить метод create, для создания экземпляра EJB, или метод finder, который находит существующий EJB и используется олько для Сущностных Компонент. Когда вы создаете Домашний интерфейс для EJB, вы должны следовать следующим принципам:

  1. Домашний интерфейс должен быть публичным (public).
  2. Домашний интерфейс должен расширять интерфейс javax.ejb.EJBHome.
  3. Каждый метод create Домашнего интерфейса должен декларировать java.rmi.RemoteException в преложении throws наряду с javax.ejb.CreateException.
  4. Возвращаемое значение метода create должно быть Удаленным интерфейсом.
  5. Возвращаемое значение метода finder (только для Сущностных Компонент) должно быть удаленным интерфейсом или java.util.Enumeration, или java.util.Collection.
  6. Любые объекты, передаваемые в качесвте аргумента (либо напрямую, либо внутри локального объекта) должны быть действительными с точки зрения RMI-IIOP типом данным (включая другие EJB объекты).




Начало  Назад  Вперед



Книжный магазин